/** 
 * jQuery WeUI V1.2.0 
 * By 言川
 * http://lihongxun945.github.io/jquery-weui/
 */
! function(t) {
	"use strict";
	t.fn.transitionEnd = function(t) {
		function e(r) {
			if (r.target === this)
				for (t.call(this, r), n = 0; n < i.length; n++) a.off(i[n], e)
		}
		var n, i = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
			a = this;
		if (t)
			for (n = 0; n < i.length; n++) a.on(i[n], e);
		return this
	}, t.support = function() {
		var t = {
			touch: !!("ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch)
		};
		return t
	}(), t.touchEvents = {
		start: t.support.touch ? "touchstart" : "mousedown",
		move: t.support.touch ? "touchmove" : "mousemove",
		end: t.support.touch ? "touchend" : "mouseup"
	}, t.getTouchPosition = function(t) {
		return t = t.originalEvent || t, "touchstart" === t.type || "touchmove" === t.type || "touchend" === t.type ? {
			x: t.targetTouches[0].pageX,
			y: t.targetTouches[0].pageY
		} : {
			x: t.pageX,
			y: t.pageY
		}
	}, t.fn.scrollHeight = function() {
		return this[0].scrollHeight
	}, t.fn.transform = function(t) {
		for (var e = 0; e < this.length; e++) {
			var n = this[e].style;
			n.webkitTransform = n.MsTransform = n.msTransform = n.MozTransform = n.OTransform = n.transform = t
		}
		return this
	}, t.fn.transition = function(t) {
		"string" != typeof t && (t += "ms");
		for (var e = 0; e < this.length; e++) {
			var n = this[e].style;
			n.webkitTransitionDuration = n.MsTransitionDuration = n.msTransitionDuration = n.MozTransitionDuration = n.OTransitionDuration = n.transitionDuration = t
		}
		return this
	}, t.getTranslate = function(t, e) {
		var n, i, a, r;
		return "undefined" == typeof e && (e = "x"), a = window.getComputedStyle(t, null), window.WebKitCSSMatrix ? r = new WebKitCSSMatrix("none" === a.webkitTransform ? "" : a.webkitTransform) : (r = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), n = r.toString().split(",")), "x" === e && (i = window.WebKitCSSMatrix ? r.m41 : 16 === n.length ? parseFloat(n[12]) : parseFloat(n[4])), "y" === e && (i = window.WebKitCSSMatrix ? r.m42 : 16 === n.length ? parseFloat(n[13]) : parseFloat(n[5])), i || 0
	}, t.requestAnimationFrame = function(t) {
		return window.requestAnimationFrame ? window.requestAnimationFrame(t) : window.webkitRequestAnimationFrame ? window.webkitRequestAnimationFrame(t) : window.mozRequestAnimationFrame ? window.mozRequestAnimationFrame(t) : window.setTimeout(t, 1e3 / 60)
	}, t.cancelAnimationFrame = function(t) {
		return window.cancelAnimationFrame ? window.cancelAnimationFrame(t) : window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(t) : window.mozCancelAnimationFrame ? window.mozCancelAnimationFrame(t) : window.clearTimeout(t)
	}, t.fn.join = function(t) {
		return this.toArray().join(t)
	}
}($), + function(t) {
	"use strict";
	t.Template7 = t.t7 = function() {
		function t(t) {
			return "[object Array]" === Object.prototype.toString.apply(t)
		}

		function e(t) {
			return "function" == typeof t
		}

		function n(t) {
			var e, n, i, a = t.replace(/[{}#}]/g, "").split(" "),
				r = [];
			for (n = 0; n < a.length; n++) {
				var o = a[n];
				if (0 === n) r.push(o);
				else if (0 === o.indexOf('"'))
					if (2 === o.match(/"/g).length) r.push(o);
					else {
						for (e = 0, i = n + 1; i < a.length; i++)
							if (o += " " + a[i], a[i].indexOf('"') >= 0) {
								e = i, r.push(o);
								break
							}
						e && (n = e)
					}
				else if (o.indexOf("=") > 0) {
					var s = o.split("="),
						c = s[0],
						l = s[1];
					if (2 !== l.match(/"/g).length) {
						for (e = 0, i = n + 1; i < a.length; i++)
							if (l += " " + a[i], a[i].indexOf('"') >= 0) {
								e = i;
								break
							}
						e && (n = e)
					}
					var u = [c, l.replace(/"/g, "")];
					r.push(u)
				} else r.push(o)
			}
			return r
		}

		function i(e) {
			var i, a, r = [];
			if (!e) return [];
			var o = e.split(/({{[^{^}]*}})/);
			for (i = 0; i < o.length; i++) {
				var s = o[i];
				if ("" !== s)
					if (s.indexOf("{{") < 0) r.push({
						type: "plain",
						content: s
					});
					else {
						if (s.indexOf("{/") >= 0) continue;
						if (s.indexOf("{#") < 0 && s.indexOf(" ") < 0 && s.indexOf("else") < 0) {
							r.push({
								type: "variable",
								contextName: s.replace(/[{}]/g, "")
							});
							continue
						}
						var c = n(s),
							l = c[0],
							u = [],
							p = {};
						for (a = 1; a < c.length; a++) {
							var h = c[a];
							t(h) ? p[h[0]] = "false" === h[1] ? !1 : h[1] : u.push(h)
						}
						if (s.indexOf("{#") >= 0) {
							var d, f = "",
								m = "",
								v = 0,
								g = !1,
								w = !1,
								y = 0;
							for (a = i + 1; a < o.length; a++)
								if (o[a].indexOf("{{#") >= 0 && y++, o[a].indexOf("{{/") >= 0 && y--, o[a].indexOf("{{#" + l) >= 0) f += o[a], w && (m += o[a]), v++;
								else if (o[a].indexOf("{{/" + l) >= 0) {
								if (!(v > 0)) {
									d = a, g = !0;
									break
								}
								v--, f += o[a], w && (m += o[a])
							} else o[a].indexOf("else") >= 0 && 0 === y ? w = !0 : (w || (f += o[a]), w && (m += o[a]));
							g && (d && (i = d), r.push({
								type: "helper",
								helperName: l,
								contextName: u,
								content: f,
								inverseContent: m,
								hash: p
							}))
						} else s.indexOf(" ") > 0 && r.push({
							type: "helper",
							helperName: l,
							contextName: u,
							hash: p
						})
					}
			}
			return r
		}
		var a = function(t) {
			function e(t, e) {
				return t.content ? o(t.content, e) : function() {
					return ""
				}
			}

			function n(t, e) {
				return t.inverseContent ? o(t.inverseContent, e) : function() {
					return ""
				}
			}

			function a(t, e) {
				var n, i, a = 0;
				if (0 === t.indexOf("../")) {
					a = t.split("../").length - 1;
					var r = e.split("_")[1] - a;
					e = "ctx_" + (r >= 1 ? r : 1), i = t.split("../")[a].split(".")
				} else 0 === t.indexOf("@global") ? (e = "$.Template7.global", i = t.split("@global.")[1].split(".")) : 0 === t.indexOf("@root") ? (e = "ctx_1", i = t.split("@root.")[1].split(".")) : i = t.split(".");
				n = e;
				for (var o = 0; o < i.length; o++) {
					var s = i[o];
					0 === s.indexOf("@") ? o > 0 ? n += "[(data && data." + s.replace("@", "") + ")]" : n = "(data && data." + t.replace("@", "") + ")" : isFinite(s) ? n += "[" + s + "]" : 0 === s.indexOf("this") ? n = s.replace("this", e) : n += "." + s
				}
				return n
			}

			function r(t, e) {
				for (var n = [], i = 0; i < t.length; i++) 0 === t[i].indexOf('"') ? n.push(t[i]) : n.push(a(t[i], e));
				return n.join(", ")
			}

			function o(t, o) {
				if (o = o || 1, t = t || s.template, "string" != typeof t) throw new Error("Template7: Template must be a string");
				var c = i(t);
				if (0 === c.length) return function() {
					return ""
				};
				var l = "ctx_" + o,
					u = "(function (" + l + ", data) {\n";
				1 === o && (u += "function isArray(arr){return Object.prototype.toString.apply(arr) === '[object Array]';}\n", u += "function isFunction(func){return (typeof func === 'function');}\n", u += 'function c(val, ctx) {if (typeof val !== "undefined") {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n'), u += "var r = '';\n";
				var p;
				for (p = 0; p < c.length; p++) {
					var h = c[p];
					if ("plain" !== h.type) {
						var d, f;
						if ("variable" === h.type && (d = a(h.contextName, l), u += "r += c(" + d + ", " + l + ");"), "helper" === h.type)
							if (h.helperName in s.helpers) f = r(h.contextName, l), u += "r += ($.Template7.helpers." + h.helperName + ").call(" + l + ", " + (f && f + ", ") + "{hash:" + JSON.stringify(h.hash) + ", data: data || {}, fn: " + e(h, o + 1) + ", inverse: " + n(h, o + 1) + ", root: ctx_1});";
							else {
								if (h.contextName.length > 0) throw new Error('Template7: Missing helper: "' + h.helperName + '"');
								d = a(h.helperName, l), u += "if (" + d + ") {", u += "if (isArray(" + d + ")) {", u += "r += ($.Template7.helpers.each).call(" + l + ", " + d + ", {hash:" + JSON.stringify(h.hash) + ", data: data || {}, fn: " + e(h, o + 1) + ", inverse: " + n(h, o + 1) + ", root: ctx_1});", u += "}else {", u += "r += ($.Template7.helpers.with).call(" + l + ", " + d + ", {hash:" + JSON.stringify(h.hash) + ", data: data || {}, fn: " + e(h, o + 1) + ", inverse: " + n(h, o + 1) + ", root: ctx_1});", u += "}}"
							}
					} else u += "r +='" + h.content.replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/'/g, "\\'") + "';"
				}
				return u += "\nreturn r;})", eval.call(window, u)
			}
			var s = this;
			s.template = t, s.compile = function(t) {
				return s.compiled || (s.compiled = o(t)), s.compiled
			}
		};
		a.prototype = {
			options: {},
			helpers: {
				"if": function(t, n) {
					return e(t) && (t = t.call(this)), t ? n.fn(this, n.data) : n.inverse(this, n.data)
				},
				unless: function(t, n) {
					return e(t) && (t = t.call(this)), t ? n.inverse(this, n.data) : n.fn(this, n.data)
				},
				each: function(n, i) {
					var a = "",
						r = 0;
					if (e(n) && (n = n.call(this)), t(n)) {
						for (i.hash.reverse && (n = n.reverse()), r = 0; r < n.length; r++) a += i.fn(n[r], {
							first: 0 === r,
							last: r === n.length - 1,
							index: r
						});
						i.hash.reverse && (n = n.reverse())
					} else
						for (var o in n) r++, a += i.fn(n[o], {
							key: o
						});
					return r > 0 ? a : i.inverse(this)
				},
				"with": function(t, n) {
					return e(t) && (t = t.call(this)), n.fn(t)
				},
				join: function(t, n) {
					return e(t) && (t = t.call(this)), t.join(n.hash.delimiter || n.hash.delimeter)
				},
				js: function(t, e) {
					var n;
					return n = t.indexOf("return") >= 0 ? "(function(){" + t + "})" : "(function(){return (" + t + ")})", eval.call(this, n).call(this)
				},
				js_compare: function(t, e) {
					var n;
					n = t.indexOf("return") >= 0 ? "(function(){" + t + "})" : "(function(){return (" + t + ")})";
					var i = eval.call(this, n).call(this);
					return i ? e.fn(this, e.data) : e.inverse(this, e.data)
				}
			}
		};
		var r = function(t, e) {
			if (2 === arguments.length) {
				var n = new a(t),
					i = n.compile()(e);
				return n = null, i
			}
			return new a(t)
		};
		return r.registerHelper = function(t, e) {
			a.prototype.helpers[t] = e
		}, r.unregisterHelper = function(t) {
			a.prototype.helpers[t] = void 0, delete a.prototype.helpers[t]
		}, r.compile = function(t, e) {
			var n = new a(t, e);
			return n.compile()
		}, r.options = a.prototype.options, r.helpers = a.prototype.helpers, r
	}()
}($),
/*! Hammer.JS - v2.0.8 - 2016-04-23
 * http://hammerjs.github.io/
 *
 * Copyright (c) 2016 Jorik Tangelder;
 * Licensed under the MIT license */
function(t, e, n, i) {
	"use strict";

	function a(t, e, n) {
		return setTimeout(l(t, n), e)
	}

	function r(t, e, n) {
		return Array.isArray(t) ? (o(t, n[e], n), !0) : !1
	}

	function o(t, e, n) {
		var a;
		if (t)
			if (t.forEach) t.forEach(e, n);
			else if (t.length !== i)
			for (a = 0; a < t.length;) e.call(n, t[a], a, t), a++;
		else
			for (a in t) t.hasOwnProperty(a) && e.call(n, t[a], a, t)
	}

	function s(e, n, i) {
		var a = "DEPRECATED METHOD: " + n + "\n" + i + " AT \n";
		return function() {
			var n = new Error("get-stack-trace"),
				i = n && n.stack ? n.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace",
				r = t.console && (t.console.warn || t.console.log);
			return r && r.call(t.console, a, i), e.apply(this, arguments)
		}
	}

	function c(t, e, n) {
		var i, a = e.prototype;
		i = t.prototype = Object.create(a), i.constructor = t, i._super = a, n && pt(i, n)
	}

	function l(t, e) {
		return function() {
			return t.apply(e, arguments)
		}
	}

	function u(t, e) {
		return typeof t == ft ? t.apply(e ? e[0] || i : i, e) : t
	}

	function p(t, e) {
		return t === i ? e : t
	}

	function h(t, e, n) {
		o(v(e), function(e) {
			t.addEventListener(e, n, !1)
		})
	}

	function d(t, e, n) {
		o(v(e), function(e) {
			t.removeEventListener(e, n, !1)
		})
	}

	function f(t, e) {
		for (; t;) {
			if (t == e) return !0;
			t = t.parentNode
		}
		return !1
	}

	function m(t, e) {
		return t.indexOf(e) > -1
	}

	function v(t) {
		return t.trim().split(/\s+/g)
	}

	function g(t, e, n) {
		if (t.indexOf && !n) return t.indexOf(e);
		for (var i = 0; i < t.length;) {
			if (n && t[i][n] == e || !n && t[i] === e) return i;
			i++
		}
		return -1
	}

	function w(t) {
		return Array.prototype.slice.call(t, 0)
	}

	function y(t, e, n) {
		for (var i = [], a = [], r = 0; r < t.length;) {
			var o = e ? t[r][e] : t[r];
			g(a, o) < 0 && i.push(t[r]), a[r] = o, r++
		}
		return n && (i = e ? i.sort(function(t, n) {
			return t[e] > n[e]
		}) : i.sort()), i
	}

	function T(t, e) {
		for (var n, a, r = e[0].toUpperCase() + e.slice(1), o = 0; o < ht.length;) {
			if (n = ht[o], a = n ? n + r : e, a in t) return a;
			o++
		}
		return i
	}

	function k() {
		return Tt++
	}

	function x(e) {
		var n = e.ownerDocument || e;
		return n.defaultView || n.parentWindow || t
	}

	function C(t, e) {
		var n = this;
		this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function(e) {
			u(t.options.enable, [t]) && n.handler(e)
		}, this.init()
	}

	function b(t) {
		var e, n = t.options.inputClass;
		return new(e = n ? n : Ct ? F : bt ? z : xt ? j : N)(t, M)
	}

	function M(t, e, n) {
		var i = n.pointers.length,
			a = n.changedPointers.length,
			r = e & Ot && i - a === 0,
			o = e & (It | Ht) && i - a === 0;
		n.isFirst = !!r, n.isFinal = !!o, r && (t.session = {}), n.eventType = e, _(t, n), t.emit("hammer.input", n), t.recognize(n), t.session.prevInput = n
	}

	function _(t, e) {
		var n = t.session,
			i = e.pointers,
			a = i.length;
		n.firstInput || (n.firstInput = P(e)), a > 1 && !n.firstMultiple ? n.firstMultiple = P(e) : 1 === a && (n.firstMultiple = !1);
		var r = n.firstInput,
			o = n.firstMultiple,
			s = o ? o.center : r.center,
			c = e.center = O(i);
		e.timeStamp = gt(), e.deltaTime = e.timeStamp - r.timeStamp, e.angle = S(s, c), e.distance = H(s, c), E(n, e), e.offsetDirection = I(e.deltaX, e.deltaY);
		var l = A(e.deltaTime, e.deltaX, e.deltaY);
		e.overallVelocityX = l.x, e.overallVelocityY = l.y, e.overallVelocity = vt(l.x) > vt(l.y) ? l.x : l.y, e.scale = o ? V(o.pointers, i) : 1, e.rotation = o ? Y(o.pointers, i) : 0, e.maxPointers = n.prevInput ? e.pointers.length > n.prevInput.maxPointers ? e.pointers.length : n.prevInput.maxPointers : e.pointers.length, D(n, e);
		var u = t.element;
		f(e.srcEvent.target, u) && (u = e.srcEvent.target), e.target = u
	}

	function E(t, e) {
		var n = e.center,
			i = t.offsetDelta || {},
			a = t.prevDelta || {},
			r = t.prevInput || {};
		e.eventType !== Ot && r.eventType !== It || (a = t.prevDelta = {
			x: r.deltaX || 0,
			y: r.deltaY || 0
		}, i = t.offsetDelta = {
			x: n.x,
			y: n.y
		}), e.deltaX = a.x + (n.x - i.x), e.deltaY = a.y + (n.y - i.y)
	}

	function D(t, e) {
		var n, a, r, o, s = t.lastInterval || e,
			c = e.timeStamp - s.timeStamp;
		if (e.eventType != Ht && (c > Pt || s.velocity === i)) {
			var l = e.deltaX - s.deltaX,
				u = e.deltaY - s.deltaY,
				p = A(c, l, u);
			a = p.x, r = p.y, n = vt(p.x) > vt(p.y) ? p.x : p.y, o = I(l, u), t.lastInterval = e
		} else n = s.velocity, a = s.velocityX, r = s.velocityY, o = s.direction;
		e.velocity = n, e.velocityX = a, e.velocityY = r, e.direction = o
	}

	function P(t) {
		for (var e = [], n = 0; n < t.pointers.length;) e[n] = {
			clientX: mt(t.pointers[n].clientX),
			clientY: mt(t.pointers[n].clientY)
		}, n++;
		return {
			timeStamp: gt(),
			pointers: e,
			center: O(e),
			deltaX: t.deltaX,
			deltaY: t.deltaY
		}
	}

	function O(t) {
		var e = t.length;
		if (1 === e) return {
			x: mt(t[0].clientX),
			y: mt(t[0].clientY)
		};
		for (var n = 0, i = 0, a = 0; e > a;) n += t[a].clientX, i += t[a].clientY, a++;
		return {
			x: mt(n / e),
			y: mt(i / e)
		}
	}

	function A(t, e, n) {
		return {
			x: e / t || 0,
			y: n / t || 0
		}
	}

	function I(t, e) {
		return t === e ? St : vt(t) >= vt(e) ? 0 > t ? Yt : Vt : 0 > e ? Nt : Ft
	}

	function H(t, e, n) {
		n || (n = Lt);
		var i = e[n[0]] - t[n[0]],
			a = e[n[1]] - t[n[1]];
		return Math.sqrt(i * i + a * a)
	}

	function S(t, e, n) {
		n || (n = Lt);
		var i = e[n[0]] - t[n[0]],
			a = e[n[1]] - t[n[1]];
		return 180 * Math.atan2(a, i) / Math.PI
	}

	function Y(t, e) {
		return S(e[1], e[0], jt) + S(t[1], t[0], jt)
	}

	function V(t, e) {
		return H(e[0], e[1], jt) / H(t[0], t[1], jt)
	}

	function N() {
		this.evEl = $t, this.evWin = Wt, this.pressed = !1, C.apply(this, arguments)
	}

	function F() {
		this.evEl = Bt, this.evWin = Gt, C.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
	}

	function R() {
		this.evTarget = Zt, this.evWin = Qt, this.started = !1, C.apply(this, arguments)
	}

	function q(t, e) {
		var n = w(t.touches),
			i = w(t.changedTouches);
		return e & (It | Ht) && (n = y(n.concat(i), "identifier", !0)), [n, i]
	}

	function z() {
		this.evTarget = ee, this.targetIds = {}, C.apply(this, arguments)
	}

	function L(t, e) {
		var n = w(t.touches),
			i = this.targetIds;
		if (e & (Ot | At) && 1 === n.length) return i[n[0].identifier] = !0, [n, n];
		var a, r, o = w(t.changedTouches),
			s = [],
			c = this.target;
		if (r = n.filter(function(t) {
				return f(t.target, c)
			}), e === Ot)
			for (a = 0; a < r.length;) i[r[a].identifier] = !0, a++;
		for (a = 0; a < o.length;) i[o[a].identifier] && s.push(o[a]), e & (It | Ht) && delete i[o[a].identifier], a++;
		return s.length ? [y(r.concat(s), "identifier", !0), s] : void 0
	}

	function j() {
		C.apply(this, arguments);
		var t = l(this.handler, this);
		this.touch = new z(this.manager, t), this.mouse = new N(this.manager, t), this.primaryTouch = null, this.lastTouches = []
	}

	function X(t, e) {
		t & Ot ? (this.primaryTouch = e.changedPointers[0].identifier, $.call(this, e)) : t & (It | Ht) && $.call(this, e)
	}

	function $(t) {
		var e = t.changedPointers[0];
		if (e.identifier === this.primaryTouch) {
			var n = {
				x: e.clientX,
				y: e.clientY
			};
			this.lastTouches.push(n);
			var i = this.lastTouches,
				a = function() {
					var t = i.indexOf(n);
					t > -1 && i.splice(t, 1)
				};
			setTimeout(a, ne)
		}
	}

	function W(t) {
		for (var e = t.srcEvent.clientX, n = t.srcEvent.clientY, i = 0; i < this.lastTouches.length; i++) {
			var a = this.lastTouches[i],
				r = Math.abs(e - a.x),
				o = Math.abs(n - a.y);
			if (ie >= r && ie >= o) return !0
		}
		return !1
	}

	function K(t, e) {
		this.manager = t, this.set(e)
	}

	function U(t) {
		if (m(t, le)) return le;
		var e = m(t, ue),
			n = m(t, pe);
		return e && n ? le : e || n ? e ? ue : pe : m(t, ce) ? ce : se
	}

	function B() {
		if (!re) return !1;
		var e = {},
			n = t.CSS && t.CSS.supports;
		return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function(i) {
			e[i] = n ? t.CSS.supports("touch-action", i) : !0
		}), e
	}

	function G(t) {
		this.options = pt({}, this.defaults, t || {}), this.id = k(), this.manager = null, this.options.enable = p(this.options.enable, !0), this.state = de, this.simultaneous = {}, this.requireFail = []
	}

	function J(t) {
		return t & we ? "cancel" : t & ve ? "end" : t & me ? "move" : t & fe ? "start" : ""
	}

	function Z(t) {
		return t == Ft ? "down" : t == Nt ? "up" : t == Yt ? "left" : t == Vt ? "right" : ""
	}

	function Q(t, e) {
		var n = e.manager;
		return n ? n.get(t) : t
	}

	function tt() {
		G.apply(this, arguments)
	}

	function et() {
		tt.apply(this, arguments), this.pX = null, this.pY = null
	}

	function nt() {
		tt.apply(this, arguments)
	}

	function it() {
		G.apply(this, arguments), this._timer = null, this._input = null
	}

	function at() {
		tt.apply(this, arguments)
	}

	function rt() {
		tt.apply(this, arguments)
	}

	function ot() {
		G.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
	}

	function st(t, e) {
		return e = e || {}, e.recognizers = p(e.recognizers, st.defaults.preset), new ct(t, e)
	}

	function ct(t, e) {
		this.options = pt({}, st.defaults, e || {}), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = t, this.input = b(this), this.touchAction = new K(this, this.options.touchAction), lt(this, !0), o(this.options.recognizers, function(t) {
			var e = this.add(new t[0](t[1]));
			t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3])
		}, this)
	}

	function lt(t, e) {
		var n = t.element;
		if (n.style) {
			var i;
			o(t.options.cssProps, function(a, r) {
				i = T(n.style, r), e ? (t.oldCssProps[i] = n.style[i], n.style[i] = a) : n.style[i] = t.oldCssProps[i] || ""
			}), e || (t.oldCssProps = {})
		}
	}

	function ut(t, n) {
		var i = e.createEvent("Event");
		i.initEvent(t, !0, !0), i.gesture = n, n.target.dispatchEvent(i)
	}
	var pt, ht = ["", "webkit", "Moz", "MS", "ms", "o"],
		dt = e.createElement("div"),
		ft = "function",
		mt = Math.round,
		vt = Math.abs,
		gt = Date.now;
	pt = "function" != typeof Object.assign ? function(t) {
		if (t === i || null === t) throw new TypeError("Cannot convert undefined or null to object");
		for (var e = Object(t), n = 1; n < arguments.length; n++) {
			var a = arguments[n];
			if (a !== i && null !== a)
				for (var r in a) a.hasOwnProperty(r) && (e[r] = a[r])
		}
		return e
	} : Object.assign;
	var wt = s(function(t, e, n) {
			for (var a = Object.keys(e), r = 0; r < a.length;)(!n || n && t[a[r]] === i) && (t[a[r]] = e[a[r]]), r++;
			return t
		}, "extend", "Use `assign`."),
		yt = s(function(t, e) {
			return wt(t, e, !0)
		}, "merge", "Use `assign`."),
		Tt = 1,
		kt = /mobile|tablet|ip(ad|hone|od)|android/i,
		xt = "ontouchstart" in t,
		Ct = T(t, "PointerEvent") !== i,
		bt = xt && kt.test(navigator.userAgent),
		Mt = "touch",
		_t = "pen",
		Et = "mouse",
		Dt = "kinect",
		Pt = 25,
		Ot = 1,
		At = 2,
		It = 4,
		Ht = 8,
		St = 1,
		Yt = 2,
		Vt = 4,
		Nt = 8,
		Ft = 16,
		Rt = Yt | Vt,
		qt = Nt | Ft,
		zt = Rt | qt,
		Lt = ["x", "y"],
		jt = ["clientX", "clientY"];
	C.prototype = {
		handler: function() {},
		init: function() {
			this.evEl && h(this.element, this.evEl, this.domHandler), this.evTarget && h(this.target, this.evTarget, this.domHandler), this.evWin && h(x(this.element), this.evWin, this.domHandler)
		},
		destroy: function() {
			this.evEl && d(this.element, this.evEl, this.domHandler), this.evTarget && d(this.target, this.evTarget, this.domHandler), this.evWin && d(x(this.element), this.evWin, this.domHandler)
		}
	};
	var Xt = {
			mousedown: Ot,
			mousemove: At,
			mouseup: It
		},
		$t = "mousedown",
		Wt = "mousemove mouseup";
	c(N, C, {
		handler: function(t) {
			var e = Xt[t.type];
			e & Ot && 0 === t.button && (this.pressed = !0), e & At && 1 !== t.which && (e = It), this.pressed && (e & It && (this.pressed = !1), this.callback(this.manager, e, {
				pointers: [t],
				changedPointers: [t],
				pointerType: Et,
				srcEvent: t
			}))
		}
	});
	var Kt = {
			pointerdown: Ot,
			pointermove: At,
			pointerup: It,
			pointercancel: Ht,
			pointerout: Ht
		},
		Ut = {
			2: Mt,
			3: _t,
			4: Et,
			5: Dt
		},
		Bt = "pointerdown",
		Gt = "pointermove pointerup pointercancel";
	t.MSPointerEvent && !t.PointerEvent && (Bt = "MSPointerDown", Gt = "MSPointerMove MSPointerUp MSPointerCancel"), c(F, C, {
		handler: function(t) {
			var e = this.store,
				n = !1,
				i = t.type.toLowerCase().replace("ms", ""),
				a = Kt[i],
				r = Ut[t.pointerType] || t.pointerType,
				o = r == Mt,
				s = g(e, t.pointerId, "pointerId");
			a & Ot && (0 === t.button || o) ? 0 > s && (e.push(t), s = e.length - 1) : a & (It | Ht) && (n = !0), 0 > s || (e[s] = t, this.callback(this.manager, a, {
				pointers: e,
				changedPointers: [t],
				pointerType: r,
				srcEvent: t
			}), n && e.splice(s, 1))
		}
	});
	var Jt = {
			touchstart: Ot,
			touchmove: At,
			touchend: It,
			touchcancel: Ht
		},
		Zt = "touchstart",
		Qt = "touchstart touchmove touchend touchcancel";
	c(R, C, {
		handler: function(t) {
			var e = Jt[t.type];
			if (e === Ot && (this.started = !0), this.started) {
				var n = q.call(this, t, e);
				e & (It | Ht) && n[0].length - n[1].length === 0 && (this.started = !1), this.callback(this.manager, e, {
					pointers: n[0],
					changedPointers: n[1],
					pointerType: Mt,
					srcEvent: t
				})
			}
		}
	});
	var te = {
			touchstart: Ot,
			touchmove: At,
			touchend: It,
			touchcancel: Ht
		},
		ee = "touchstart touchmove touchend touchcancel";
	c(z, C, {
		handler: function(t) {
			var e = te[t.type],
				n = L.call(this, t, e);
			n && this.callback(this.manager, e, {
				pointers: n[0],
				changedPointers: n[1],
				pointerType: Mt,
				srcEvent: t
			})
		}
	});
	var ne = 2500,
		ie = 25;
	c(j, C, {
		handler: function(t, e, n) {
			var i = n.pointerType == Mt,
				a = n.pointerType == Et;
			if (!(a && n.sourceCapabilities && n.sourceCapabilities.firesTouchEvents)) {
				if (i) X.call(this, e, n);
				else if (a && W.call(this, n)) return;
				this.callback(t, e, n)
			}
		},
		destroy: function() {
			this.touch.destroy(), this.mouse.destroy()
		}
	});
	var ae = T(dt.style, "touchAction"),
		re = ae !== i,
		oe = "compute",
		se = "auto",
		ce = "manipulation",
		le = "none",
		ue = "pan-x",
		pe = "pan-y",
		he = B();
	K.prototype = {
		set: function(t) {
			t == oe && (t = this.compute()), re && this.manager.element.style && he[t] && (this.manager.element.style[ae] = t), this.actions = t.toLowerCase().trim()
		},
		update: function() {
			this.set(this.manager.options.touchAction)
		},
		compute: function() {
			var t = [];
			return o(this.manager.recognizers, function(e) {
				u(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
			}), U(t.join(" "))
		},
		preventDefaults: function(t) {
			var e = t.srcEvent,
				n = t.offsetDirection;
			if (this.manager.session.prevented) return void e.preventDefault();
			var i = this.actions,
				a = m(i, le) && !he[le],
				r = m(i, pe) && !he[pe],
				o = m(i, ue) && !he[ue];
			if (a) {
				var s = 1 === t.pointers.length,
					c = t.distance < 2,
					l = t.deltaTime < 250;
				if (s && c && l) return
			}
			return o && r ? void 0 : a || r && n & Rt || o && n & qt ? this.preventSrc(e) : void 0
		},
		preventSrc: function(t) {
			this.manager.session.prevented = !0, t.preventDefault()
		}
	};
	var de = 1,
		fe = 2,
		me = 4,
		ve = 8,
		ge = ve,
		we = 16,
		ye = 32;
	G.prototype = {
		defaults: {},
		set: function(t) {
			return pt(this.options, t), this.manager && this.manager.touchAction.update(), this
		},
		recognizeWith: function(t) {
			if (r(t, "recognizeWith", this)) return this;
			var e = this.simultaneous;
			return t = Q(t, this), e[t.id] || (e[t.id] = t, t.recognizeWith(this)), this
		},
		dropRecognizeWith: function(t) {
			return r(t, "dropRecognizeWith", this) ? this : (t = Q(t, this), delete this.simultaneous[t.id], this)
		},
		requireFailure: function(t) {
			if (r(t, "requireFailure", this)) return this;
			var e = this.requireFail;
			return t = Q(t, this), -1 === g(e, t) && (e.push(t), t.requireFailure(this)), this
		},
		dropRequireFailure: function(t) {
			if (r(t, "dropRequireFailure", this)) return this;
			t = Q(t, this);
			var e = g(this.requireFail, t);
			return e > -1 && this.requireFail.splice(e, 1), this
		},
		hasRequireFailures: function() {
			return this.requireFail.length > 0
		},
		canRecognizeWith: function(t) {
			return !!this.simultaneous[t.id]
		},
		emit: function(t) {
			function e(e) {
				n.manager.emit(e, t)
			}
			var n = this,
				i = this.state;
			ve > i && e(n.options.event + J(i)), e(n.options.event), t.additionalEvent && e(t.additionalEvent), i >= ve && e(n.options.event + J(i))
		},
		tryEmit: function(t) {
			return this.canEmit() ? this.emit(t) : void(this.state = ye)
		},
		canEmit: function() {
			for (var t = 0; t < this.requireFail.length;) {
				if (!(this.requireFail[t].state & (ye | de))) return !1;
				t++
			}
			return !0
		},
		recognize: function(t) {
			var e = pt({}, t);
			return u(this.options.enable, [this, e]) ? (this.state & (ge | we | ye) && (this.state = de), this.state = this.process(e), void(this.state & (fe | me | ve | we) && this.tryEmit(e))) : (this.reset(), void(this.state = ye))
		},
		process: function(t) {},
		getTouchAction: function() {},
		reset: function() {}
	}, c(tt, G, {
		defaults: {
			pointers: 1
		},
		attrTest: function(t) {
			var e = this.options.pointers;
			return 0 === e || t.pointers.length === e
		},
		process: function(t) {
			var e = this.state,
				n = t.eventType,
				i = e & (fe | me),
				a = this.attrTest(t);
			return i && (n & Ht || !a) ? e | we : i || a ? n & It ? e | ve : e & fe ? e | me : fe : ye
		}
	}), c(et, tt, {
		defaults: {
			event: "pan",
			threshold: 10,
			pointers: 1,
			direction: zt
		},
		getTouchAction: function() {
			var t = this.options.direction,
				e = [];
			return t & Rt && e.push(pe), t & qt && e.push(ue), e
		},
		directionTest: function(t) {
			var e = this.options,
				n = !0,
				i = t.distance,
				a = t.direction,
				r = t.deltaX,
				o = t.deltaY;
			return a & e.direction || (e.direction & Rt ? (a = 0 === r ? St : 0 > r ? Yt : Vt, n = r != this.pX, i = Math.abs(t.deltaX)) : (a = 0 === o ? St : 0 > o ? Nt : Ft, n = o != this.pY, i = Math.abs(t.deltaY))), t.direction = a, n && i > e.threshold && a & e.direction
		},
		attrTest: function(t) {
			return tt.prototype.attrTest.call(this, t) && (this.state & fe || !(this.state & fe) && this.directionTest(t))
		},
		emit: function(t) {
			this.pX = t.deltaX, this.pY = t.deltaY;
			var e = Z(t.direction);
			e && (t.additionalEvent = this.options.event + e), this._super.emit.call(this, t)
		}
	}), c(nt, tt, {
		defaults: {
			event: "pinch",
			threshold: 0,
			pointers: 2
		},
		getTouchAction: function() {
			return [le]
		},
		attrTest: function(t) {
			return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & fe)
		},
		emit: function(t) {
			if (1 !== t.scale) {
				var e = t.scale < 1 ? "in" : "out";
				t.additionalEvent = this.options.event + e
			}
			this._super.emit.call(this, t)
		}
	}), c(it, G, {
		defaults: {
			event: "press",
			pointers: 1,
			time: 251,
			threshold: 9
		},
		getTouchAction: function() {
			return [se]
		},
		process: function(t) {
			var e = this.options,
				n = t.pointers.length === e.pointers,
				i = t.distance < e.threshold,
				r = t.deltaTime > e.time;
			if (this._input = t, !i || !n || t.eventType & (It | Ht) && !r) this.reset();
			else if (t.eventType & Ot) this.reset(), this._timer = a(function() {
				this.state = ge, this.tryEmit()
			}, e.time, this);
			else if (t.eventType & It) return ge;
			return ye
		},
		reset: function() {
			clearTimeout(this._timer)
		},
		emit: function(t) {
			this.state === ge && (t && t.eventType & It ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = gt(), this.manager.emit(this.options.event, this._input)))
		}
	}), c(at, tt, {
		defaults: {
			event: "rotate",
			threshold: 0,
			pointers: 2
		},
		getTouchAction: function() {
			return [le]
		},
		attrTest: function(t) {
			return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & fe)
		}
	}), c(rt, tt, {
		defaults: {
			event: "swipe",
			threshold: 10,
			velocity: .3,
			direction: Rt | qt,
			pointers: 1
		},
		getTouchAction: function() {
			return et.prototype.getTouchAction.call(this)
		},
		attrTest: function(t) {
			var e, n = this.options.direction;
			return n & (Rt | qt) ? e = t.overallVelocity : n & Rt ? e = t.overallVelocityX : n & qt && (e = t.overallVelocityY), this._super.attrTest.call(this, t) && n & t.offsetDirection && t.distance > this.options.threshold && t.maxPointers == this.options.pointers && vt(e) > this.options.velocity && t.eventType & It
		},
		emit: function(t) {
			var e = Z(t.offsetDirection);
			e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t)
		}
	}), c(ot, G, {
		defaults: {
			event: "tap",
			pointers: 1,
			taps: 1,
			interval: 300,
			time: 250,
			threshold: 9,
			posThreshold: 10
		},
		getTouchAction: function() {
			return [ce]
		},
		process: function(t) {
			var e = this.options,
				n = t.pointers.length === e.pointers,
				i = t.distance < e.threshold,
				r = t.deltaTime < e.time;
			if (this.reset(), t.eventType & Ot && 0 === this.count) return this.failTimeout();
			if (i && r && n) {
				if (t.eventType != It) return this.failTimeout();
				var o = this.pTime ? t.timeStamp - this.pTime < e.interval : !0,
					s = !this.pCenter || H(this.pCenter, t.center) < e.posThreshold;
				this.pTime = t.timeStamp, this.pCenter = t.center, s && o ? this.count += 1 : this.count = 1, this._input = t;
				var c = this.count % e.taps;
				if (0 === c) return this.hasRequireFailures() ? (this._timer = a(function() {
					this.state = ge, this.tryEmit()
				}, e.interval, this), fe) : ge
			}
			return ye
		},
		failTimeout: function() {
			return this._timer = a(function() {
				this.state = ye
			}, this.options.interval, this), ye
		},
		reset: function() {
			clearTimeout(this._timer)
		},
		emit: function() {
			this.state == ge && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
		}
	}), st.VERSION = "2.0.8", st.defaults = {
		domEvents: !1,
		touchAction: oe,
		enable: !0,
		inputTarget: null,
		inputClass: null,
		preset: [
			[at, {
				enable: !1
			}],
			[nt, {
					enable: !1
				},
				["rotate"]
			],
			[rt, {
				direction: Rt
			}],
			[et, {
					direction: Rt
				},
				["swipe"]
			],
			[ot],
			[ot, {
					event: "doubletap",
					taps: 2
				},
				["tap"]
			],
			[it]
		],
		cssProps: {
			userSelect: "none",
			touchSelect: "none",
			touchCallout: "none",
			contentZooming: "none",
			userDrag: "none",
			tapHighlightColor: "rgba(0,0,0,0)"
		}
	};
	var Te = 1,
		ke = 2;
	ct.prototype = {
		set: function(t) {
			return pt(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this
		},
		stop: function(t) {
			this.session.stopped = t ? ke : Te
		},
		recognize: function(t) {
			var e = this.session;
			if (!e.stopped) {
				this.touchAction.preventDefaults(t);
				var n, i = this.recognizers,
					a = e.curRecognizer;
				(!a || a && a.state & ge) && (a = e.curRecognizer = null);
				for (var r = 0; r < i.length;) n = i[r], e.stopped === ke || a && n != a && !n.canRecognizeWith(a) ? n.reset() : n.recognize(t), !a && n.state & (fe | me | ve) && (a = e.curRecognizer = n), r++
			}
		},
		get: function(t) {
			if (t instanceof G) return t;
			for (var e = this.recognizers, n = 0; n < e.length; n++)
				if (e[n].options.event == t) return e[n];
			return null
		},
		add: function(t) {
			if (r(t, "add", this)) return this;
			var e = this.get(t.options.event);
			return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t
		},
		remove: function(t) {
			if (r(t, "remove", this)) return this;
			if (t = this.get(t)) {
				var e = this.recognizers,
					n = g(e, t); - 1 !== n && (e.splice(n, 1), this.touchAction.update())
			}
			return this
		},
		on: function(t, e) {
			if (t !== i && e !== i) {
				var n = this.handlers;
				return o(v(t), function(t) {
					n[t] = n[t] || [], n[t].push(e)
				}), this
			}
		},
		off: function(t, e) {
			if (t !== i) {
				var n = this.handlers;
				return o(v(t), function(t) {
					e ? n[t] && n[t].splice(g(n[t], e), 1) : delete n[t]
				}), this
			}
		},
		emit: function(t, e) {
			this.options.domEvents && ut(t, e);
			var n = this.handlers[t] && this.handlers[t].slice();
			if (n && n.length) {
				e.type = t, e.preventDefault = function() {
					e.srcEvent.preventDefault()
				};
				for (var i = 0; i < n.length;) n[i](e), i++
			}
		},
		destroy: function() {
			this.element && lt(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
		}
	}, pt(st, {
		INPUT_START: Ot,
		INPUT_MOVE: At,
		INPUT_END: It,
		INPUT_CANCEL: Ht,
		STATE_POSSIBLE: de,
		STATE_BEGAN: fe,
		STATE_CHANGED: me,
		STATE_ENDED: ve,
		STATE_RECOGNIZED: ge,
		STATE_CANCELLED: we,
		STATE_FAILED: ye,
		DIRECTION_NONE: St,
		DIRECTION_LEFT: Yt,
		DIRECTION_RIGHT: Vt,
		DIRECTION_UP: Nt,
		DIRECTION_DOWN: Ft,
		DIRECTION_HORIZONTAL: Rt,
		DIRECTION_VERTICAL: qt,
		DIRECTION_ALL: zt,
		Manager: ct,
		Input: C,
		TouchAction: K,
		TouchInput: z,
		MouseInput: N,
		PointerEventInput: F,
		TouchMouseInput: j,
		SingleTouchInput: R,
		Recognizer: G,
		AttrRecognizer: tt,
		Tap: ot,
		Pan: et,
		Swipe: rt,
		Pinch: nt,
		Rotate: at,
		Press: it,
		on: h,
		off: d,
		each: o,
		merge: yt,
		extend: wt,
		assign: pt,
		inherit: c,
		bindFn: l,
		prefixed: T
	});
	var xe = "undefined" != typeof t ? t : "undefined" != typeof self ? self : {};
	xe.Hammer = st, "function" == typeof define && define.amd ? define(function() {
		return st
	}) : "undefined" != typeof module && module.exports ? module.exports = st : t[n] = st
}(window, document, "Hammer"), + function(t) {
	"use strict";
	var e;
	t.modal = function(n, i) {
		n = t.extend({}, e, n);
		var a = n.buttons,
			r = a.map(function(t, e) {
				return '<a href="javascript:;" class="weui-dialog__btn ' + (t.className || "") + '">' + t.text + "</a>"
			}).join(""),
			o = '<div class="weui-dialog"><div class="weui-dialog__hd"><strong class="weui-dialog__title">' + n.title + "</strong></div>" + (n.text ? '<div class="weui-dialog__bd">' + n.text + "</div>" : "") + '<div class="weui-dialog__ft">' + r + "</div></div>",
			s = t.openModal(o, i);
		return s.find(".weui-dialog__btn").each(function(e, i) {
			var r = t(i);
			r.click(function() {
				n.autoClose && t.closeModal(), a[e].onClick && a[e].onClick.call(s)
			})
		}), s
	}, t.openModal = function(e, n) {
		var i = t("<div class='weui-mask'></div>").appendTo(document.body);
		i.show();
		var a = t(e).appendTo(document.body);
		return n && a.transitionEnd(function() {
			n.call(a)
		}), a.show(), i.addClass("weui-mask--visible"), a.addClass("weui-dialog--visible"), a
	}, t.closeModal = function() {
		t(".weui-mask--visible").removeClass("weui-mask--visible").transitionEnd(function() {
			t(this).remove()
		}), t(".weui-dialog--visible").removeClass("weui-dialog--visible").transitionEnd(function() {
			t(this).remove()
		})
	}, t.alert = function(n, i, a) {
		var r;
		return "object" == typeof n ? r = n : ("function" == typeof i && (a = arguments[1], i = void 0), r = {
			text: n,
			title: i,
			onOK: a
		}), t.modal({
			text: r.text,
			title: r.title,
			buttons: [{
				text: e.buttonOK,
				className: "primary",
				onClick: r.onOK
			}]
		})
	}, t.confirm = function(n, i, a, r) {
		var o;
		return "object" == typeof n ? o = n : ("function" == typeof i && (r = arguments[2], a = arguments[1], i = void 0), o = {
			text: n,
			title: i,
			onOK: a,
			onCancel: r
		}), t.modal({
			text: o.text,
			title: o.title,
			buttons: [{
				text: e.buttonCancel,
				className: "default",
				onClick: o.onCancel
			}, {
				text: e.buttonOK,
				className: "primary",
				onClick: o.onOK
			}]
		})
	}, t.prompt = function(n, i, a, r, o) {
		var s;
		"object" == typeof n ? s = n : ("function" == typeof i && (o = arguments[3], r = arguments[2], a = arguments[1], i = void 0), s = {
			text: n,
			title: i,
			input: o,
			onOK: a,
			onCancel: r,
			empty: !1
		});
		var c = t.modal({
			text: '<p class="weui-prompt-text">' + (s.text || "") + '</p><input type="text" class="weui-input weui-prompt-input" id="weui-prompt-input" value="' + (s.input || "") + '" />',
			title: s.title,
			autoClose: !1,
			buttons: [{
				text: e.buttonCancel,
				className: "default",
				onClick: function() {
					t.closeModal(), s.onCancel && s.onCancel.call(c)
				}
			}, {
				text: e.buttonOK,
				className: "primary",
				onClick: function() {
					var e = t("#weui-prompt-input").val();
					return s.empty || "" !== e && null !== e ? (t.closeModal(), void(s.onOK && s.onOK.call(c, e))) : (c.find(".weui-prompt-input").focus()[0].select(), !1)
				}
			}]
		}, function() {
			this.find(".weui-prompt-input").focus()[0].select()
		});
		return c
	}, t.login = function(n, i, a, r, o, s) {
		var c;
		"object" == typeof n ? c = n : ("function" == typeof i && (s = arguments[4], o = arguments[3], r = arguments[2], a = arguments[1], i = void 0), c = {
			text: n,
			title: i,
			username: o,
			password: s,
			onOK: a,
			onCancel: r
		});
		var l = t.modal({
			text: '<p class="weui-prompt-text">' + (c.text || "") + '</p><input type="text" class="weui-input weui-prompt-input" id="weui-prompt-username" value="' + (c.username || "") + '" placeholder="输入用户名" /><input type="password" class="weui-input weui-prompt-input" id="weui-prompt-password" value="' + (c.password || "") + '" placeholder="输入密码" />',
			title: c.title,
			autoClose: !1,
			buttons: [{
				text: e.buttonCancel,
				className: "default",
				onClick: function() {
					t.closeModal(), c.onCancel && c.onCancel.call(l)
				}
			}, {
				text: e.buttonOK,
				className: "primary",
				onClick: function() {
					var e = t("#weui-prompt-username").val(),
						n = t("#weui-prompt-password").val();
					return c.empty || "" !== e && null !== e ? c.empty || "" !== n && null !== n ? (t.closeModal(), void(c.onOK && c.onOK.call(l, e, n))) : (l.find("#weui-prompt-password").focus()[0].select(), !1) : (l.find("#weui-prompt-username").focus()[0].select(), !1)
				}
			}]
		}, function() {
			this.find("#weui-prompt-username").focus()[0].select()
		});
		return l
	}, e = t.modal.prototype.defaults = {
		title: "提示",
		text: void 0,
		buttonOK: "确定",
		buttonCancel: "取消",
		buttons: [{
			text: "确定",
			className: "primary"
		}],
		autoClose: !0
	}
}($), + function(t) {
	"use strict";
	var e = function(e, n) {
			n = n || "";
			var i = (t("<div class='weui-mask_transparent'></div>").appendTo(document.body), '<div class="weui-toast ' + n + '">' + e + "</div>"),
				a = t(i).appendTo(document.body);
			a.addClass("weui-toast--visible"), a.show()
		},
		n = function(e) {
			t(".weui-mask_transparent").remove(), t(".weui-toast--visible").removeClass("weui-toast--visible").transitionEnd(function() {
				var n = t(this);
				n.remove(), e && e(n)
			})
		};
	t.toast = function(t, a, r) {
		"function" == typeof a && (r = a);
		var o, s = "weui-icon-success-no-circle",
			c = i.duration;
		"cancel" == a ? (o = "weui-toast_cancel", s = "weui-icon-cancel") : "forbidden" == a ? (o = "weui-toast--forbidden", s = "weui-icon-warn") : "text" == a ? o = "weui-toast--text" : "number" == typeof a && (c = a), e('<i class="' + s + ' weui-icon_toast"></i><p class="weui-toast_content">' + (t || "已经完成") + "</p>", o), setTimeout(function() {
			n(r)
		}, c)
	}, t.showLoading = function(t) {
		var n = '<div class="weui_loading">';
		n += '<i class="weui-loading weui-icon_toast"></i>', n += "</div>", n += '<p class="weui-toast_content">' + (t || "数据加载中") + "</p>", e(n, "weui_loading_toast")
	}, t.hideLoading = function() {
		n()
	};
	var i = t.toast.prototype.defaults = {
		duration: 2500
	}
}($), + function(t) {
	"use strict";
	var e, n = function(e) {
			var n = t("<div class='weui-mask weui-actions_mask'></div>").appendTo(document.body),
				i = e.actions || [],
				a = i.map(function(t, e) {
					return '<div class="weui-actionsheet__cell ' + (t.className || "") + '">' + t.text + "</div>"
				}).join(""),
				r = "";
			e.title && (r = '<div class="weui-actionsheet__title"><p class="weui-actionsheet__title-text">' + e.title + "</p></div>");
			var o = '<div class="weui-actionsheet " id="weui-actionsheet">' + r + '<div class="weui-actionsheet__menu">' + a + '</div><div class="weui-actionsheet__action"><div class="weui-actionsheet__cell weui-actionsheet_cancel">取消</div></div></div>',
				s = t(o).appendTo(document.body);
			s.find(".weui-actionsheet__menu .weui-actionsheet__cell, .weui-actionsheet__action .weui-actionsheet__cell").each(function(n, a) {
				t(a).click(function() {
					t.closeActions(), e.onClose && e.onClose(), i[n] && i[n].onClick && i[n].onClick()
				})
			}), n.show(), s.show(), n.addClass("weui-mask--visible"), s.addClass("weui-actionsheet_toggle")
		},
		i = function() {
			t(".weui-mask").removeClass("weui-mask--visible").transitionEnd(function() {
				t(this).remove()
			}), t(".weui-actionsheet").removeClass("weui-actionsheet_toggle").transitionEnd(function() {
				t(this).remove()
			})
		};
	t.actions = function(i) {
		i = t.extend({}, e, i), n(i)
	}, t.closeActions = function() {
		i()
	}, t(document).on("click", ".weui-actions_mask", function() {
		t.closeActions()
	});
	var e = t.actions.prototype.defaults = {
		title: void 0,
		onClose: void 0
	}
}($), + function(t) {
	"use strict";
	var e = function(n, i) {
		"function" == typeof i && (i = {
			onRefresh: i
		}), "string" == typeof i && (i = void 0), this.opt = t.extend(e.defaults, i || {}), this.container = t(n), this.attachEvents()
	};
	e.defaults = {
		distance: 50,
		onRefresh: void 0,
		onPull: void 0
	}, e.prototype.touchStart = function(e) {
		if (!this.container.hasClass("refreshing")) {
			var n = t.getTouchPosition(e);
			this.start = n, this.diffX = this.diffY = 0
		}
	}, e.prototype.touchMove = function(e) {
		if (!this.container.hasClass("refreshing")) {
			if (!this.start) return !1;
			if (!(this.container.scrollTop() > 0)) {
				var n = t.getTouchPosition(e);
				return this.diffX = n.x - this.start.x, this.diffY = n.y - this.start.y, Math.abs(this.diffX) > Math.abs(this.diffY) ? !0 : void(this.diffY < 0 || (this.container.addClass("touching"), e.preventDefault(), e.stopPropagation(), this.diffY = Math.pow(this.diffY, .75), this.container.css("transform", "translate3d(0, " + this.diffY + "px, 0)"), this.triggerPull(this.diffY)))
			}
		}
	}, e.prototype.touchEnd = function() {
		this.start = !1, this.diffY <= 0 || this.container.hasClass("refreshing") || (this.container.removeClass("touching"), this.container.removeClass("pull-down pull-up"), this.container.css("transform", ""), Math.abs(this.diffY) <= this.opt.distance || this.triggerPullToRefresh())
	}, e.prototype.triggerPullToRefresh = function() {
		this.triggerPull(this.opt.distance), this.container.removeClass("pull-up").addClass("refreshing"), this.opt.onRefresh && this.opt.onRefresh.call(this), this.container.trigger("pull-to-refresh")
	}, e.prototype.triggerPull = function(t) {
		t < this.opt.distance ? this.container.removeClass("pull-up").addClass("pull-down") : this.container.removeClass("pull-down").addClass("pull-up"), this.opt.onPull && this.opt.onPull.call(this, Math.floor(t / this.opt.distance * 100)), this.container.trigger("pull")
	}, e.prototype.pullToRefreshDone = function() {
		this.container.removeClass("refreshing")
	}, e.prototype.attachEvents = function() {
		var e = this.container;
		e.addClass("weui-pull-to-refresh"), e.on(t.touchEvents.start, t.proxy(this.touchStart, this)), e.on(t.touchEvents.move, t.proxy(this.touchMove, this)), e.on(t.touchEvents.end, t.proxy(this.touchEnd, this))
	};
	var n = function(e) {
		t(e).removeClass("refreshing")
	};
	t.fn.pullToRefresh = function(n) {
		return this.each(function() {
			var i = t(this),
				a = i.data("ptr");
			a || i.data("ptr", a = new e(this, n)), "string" == typeof n && a[n].call(a)
		})
	}, t.fn.pullToRefreshDone = function() {
		return this.each(function() {
			n(this)
		})
	}
}($), + function(t) {
	"use strict";
	var e = function(e) {
			var n, i = e[0].tagName.toUpperCase();
			n = "BODY" === i || "HTML" === i ? e.scrollTop() || t(window).scrollTop() : e.scrollTop();
			var a = e.scrollHeight() - (t(window).height() + n);
			return console.log(a), a
		},
		n = function(e, n) {
			this.container = t(e), this.container.data("infinite", this), this.distance = n || 50, this.attachEvents()
		};
	n.prototype.scroll = function() {
		this.container;
		this._check()
	}, n.prototype.attachEvents = function(e) {
		var n = this.container,
			i = "BODY" === n[0].tagName.toUpperCase() ? t(document) : n;
		i[e ? "off" : "on"]("scroll", t.proxy(this.scroll, this))
	}, n.prototype.detachEvents = function(t) {
		this.attachEvents(!0)
	}, n.prototype._check = function() {
		var t = e(this.container);
		Math.abs(t) <= this.distance && this.container.trigger("infinite")
	};
	t.fn.infinite = function(t) {
		return this.each(function() {
			new n(this, t)
		})
	}, t.fn.destroyInfinite = function() {
		return this.each(function() {
			var e = t(this).data("infinite");
			e && e.detachEvents && e.detachEvents()
		})
	}
}($), + function(t) {
	"use strict";
	var e = "weui-bar__item--on",
		n = function(n) {
			var i = t(n);
			if (!i.hasClass(e)) {
				var a = i.attr("href")?i.attr("href"):i.attr("data-href");
				if (/^#/.test(a)) {
					i.parent().find("." + e).removeClass(e), i.addClass(e);
					var r = i.parents(".weui-tab").find(".weui-tab__bd");
					r.find(".weui-tab__bd-item--active").removeClass("weui-tab__bd-item--active"), t(a).addClass("weui-tab__bd-item--active");
					return false;
				}
			}
		};
	t.showTab = n, t(document).on("click", ".weui-navbar__item, .weui-tabbar__item", function(i) {
		var a = t(i.currentTarget),
			r = a.attr("href")?a.attr("href"):a.attr("data-href");
		a.hasClass(e) || /^#/.test(r) && (i.preventDefault(), n(a))
	})
}($), + function(t) {
	"use strict";
	t(document).on("click touchstart", ".weui-search-bar__label", function(e) {
		t(e.target).parents(".weui-search-bar").addClass("weui-search-bar_focusing").find("input").focus()
	}).on("click", ".weui-search-bar__cancel-btn", function(e) {
		t(e.target).parents(".weui-search-bar").removeClass("weui-search-bar_focusing").find(".weui-search-bar__input").val("").blur()
	}).on("click", ".weui-icon-clear", function(e) {
		t(e.target).parents(".weui-search-bar").find(".weui-search-bar__input").val("").focus()
	})
}($),
function(t) {
	"use strict";
	var e = {},
		n = navigator.userAgent,
		i = n.match(/(Android);?[\s\/]+([\d.]+)?/),
		a = n.match(/(iPad).*OS\s([\d_]+)/),
		r = n.match(/(iPod)(.*OS\s([\d_]+))?/),
		o = !a && n.match(/(iPhone\sOS)\s([\d_]+)/);
	if (e.ios = e.android = e.iphone = e.ipad = e.androidChrome = !1, i && (e.os = "android", e.osVersion = i[2], e.android = !0, e.androidChrome = n.toLowerCase().indexOf("chrome") >= 0), (a || o || r) && (e.os = "ios", e.ios = !0), o && !r && (e.osVersion = o[2].replace(/_/g, "."), e.iphone = !0), a && (e.osVersion = a[2].replace(/_/g, "."), e.ipad = !0), r && (e.osVersion = r[3] ? r[3].replace(/_/g, ".") : null, e.iphone = !0), e.ios && e.osVersion && n.indexOf("Version/") >= 0 && "10" === e.osVersion.split(".")[0] && (e.osVersion = n.toLowerCase().split("version/")[1].split(" ")[0]), e.webView = (o || a || r) && n.match(/.*AppleWebKit(?!.*Safari)/i),
		e.os && "ios" === e.os) {
		var s = e.osVersion.split(".");
		e.minimalUi = !e.webView && (r || o) && (1 * s[0] === 7 ? 1 * s[1] >= 1 : 1 * s[0] > 7) && t('meta[name="viewport"]').length > 0 && t('meta[name="viewport"]').attr("content").indexOf("minimal-ui") >= 0
	}
	var c = t(window).width(),
		l = t(window).height();
	e.statusBar = !1, e.webView && c * l === screen.width * screen.height ? e.statusBar = !0 : e.statusBar = !1;
	var u = [];
	if (e.pixelRatio = window.devicePixelRatio || 1, u.push("pixel-ratio-" + Math.floor(e.pixelRatio)), e.pixelRatio >= 2 && u.push("retina"), e.os && (u.push(e.os, e.os + "-" + e.osVersion.split(".")[0], e.os + "-" + e.osVersion.replace(/\./g, "-")), "ios" === e.os))
		for (var p = parseInt(e.osVersion.split(".")[0], 10), h = p - 1; h >= 6; h--) u.push("ios-gt-" + h);
	e.statusBar ? u.push("with-statusbar-overlay") : t("html").removeClass("with-statusbar-overlay"), u.length > 0 && t("html").addClass(u.join(" ")), t.device = e
}($), + function(t) {
	"use strict";
	var e = function(e) {
		function n() {
			var e = !1;
			return c.params.convertToPopover || c.params.onlyInPopover ? (!c.inline && c.params.input && (c.params.onlyInPopover ? e = !0 : t.device.ios ? e = !!t.device.ipad : t(window).width() >= 768 && (e = !0)), e) : e
		}

		function i() {
			return !!(c.opened && c.container && c.container.length > 0 && c.container.parents(".popover").length > 0)
		}

		function a() {
			if (c.opened)
				for (var t = 0; t < c.cols.length; t++) c.cols[t].divider || (c.cols[t].calcSize(), c.cols[t].setValue(c.cols[t].value, 0, !1))
		}

		function r(t) {
			if (t.preventDefault(), !c.opened && (c.open(), c.params.scrollToInput && !n())) {
				var e = c.input.parents(".content");
				if (0 === e.length) return;
				var i, a = parseInt(e.css("padding-top"), 10),
					r = parseInt(e.css("padding-bottom"), 10),
					o = e[0].offsetHeight - a - c.container.height(),
					s = e[0].scrollHeight - a - c.container.height(),
					l = c.input.offset().top - a + c.input[0].offsetHeight;
				if (l > o) {
					var u = e.scrollTop() + l - o;
					u + o > s && (i = u + o - s + r, o === s && (i = c.container.height()), e.css({
						"padding-bottom": i + "px"
					})), e.scrollTop(u, 300)
				}
			}
		}

		function o(e) {
			i() || (c.input && c.input.length > 0 ? e.target !== c.input[0] && 0 === t(e.target).parents(".weui-picker-modal").length && c.close() : 0 === t(e.target).parents(".weui-picker-modal").length && c.close())
		}

		function s() {
			c.opened = !1, c.input && c.input.length > 0 && c.input.parents(".page-content").css({
				"padding-bottom": ""
			}), c.params.onClose && c.params.onClose(c), c.container.find(".picker-items-col").each(function() {
				c.destroyPickerCol(this)
			})
		}
		var c = this,
			l = {
				updateValuesOnMomentum: !1,
				updateValuesOnTouchmove: !0,
				rotateEffect: !1,
				momentumRatio: 7,
				freeMode: !1,
				scrollToInput: !0,
				inputReadOnly: !0,
				toolbar: !0,
				toolbarCloseText: "完成",
				title: "请选择",
				toolbarTemplate: '<div class="toolbar">          <div class="toolbar-inner">          <a href="javascript:;" class="picker-button close-picker">{{closeText}}</a>          <h1 class="title">{{title}}</h1>          </div>          </div>'
			};
		e = e || {};
		for (var u in l) "undefined" == typeof e[u] && (e[u] = l[u]);
		c.params = e, c.cols = [], c.initialized = !1, c.inline = !!c.params.container;
		var p = t.device.ios || navigator.userAgent.toLowerCase().indexOf("safari") >= 0 && navigator.userAgent.toLowerCase().indexOf("chrome") < 0 && !t.device.android;
		return c.setValue = function(t, e) {
			for (var n = 0, i = 0; i < c.cols.length; i++) c.cols[i] && !c.cols[i].divider && (c.cols[i].setValue(t[n], e), n++)
		}, c.updateValue = function() {
			for (var e = [], n = [], i = 0; i < c.cols.length; i++) c.cols[i].divider || (e.push(c.cols[i].value), n.push(c.cols[i].displayValue));
			e.indexOf(void 0) >= 0 || (c.value = e, c.displayValue = n, c.params.onChange && c.params.onChange(c, c.value, c.displayValue), c.input && c.input.length > 0 && (t(c.input).val(c.params.formatValue ? c.params.formatValue(c, c.value, c.displayValue) : c.value.join(" ")), t(c.input).trigger("change")))
		}, c.initPickerCol = function(e, n) {
			function i() {
				w = t.requestAnimationFrame(function() {
					h.updateItems(void 0, void 0, 0), i()
				})
			}

			function a(e) {
				if (!T && !y) {
					e.preventDefault(), y = !0;
					var n = t.getTouchPosition(e);
					k = x = n.y, C = (new Date).getTime(), A = !0, M = E = t.getTranslate(h.wrapper[0], "y")
				}
			}

			function r(e) {
				if (y) {
					e.preventDefault(), A = !1;
					var n = t.getTouchPosition(e);
					x = n.y, T || (t.cancelAnimationFrame(w), T = !0, M = E = t.getTranslate(h.wrapper[0], "y"), h.wrapper.transition(0)), e.preventDefault();
					var i = x - k;
					E = M + i, _ = void 0, v > E && (E = v - Math.pow(v - E, .8), _ = "min"), E > g && (E = g + Math.pow(E - g, .8), _ = "max"), h.wrapper.transform("translate3d(0," + E + "px,0)"), h.updateItems(void 0, E, 0, c.params.updateValuesOnTouchmove), P = E - D || E, O = (new Date).getTime(), D = E
				}
			}

			function o(e) {
				if (!y || !T) return void(y = T = !1);
				y = T = !1, h.wrapper.transition(""), _ && ("min" === _ ? h.wrapper.transform("translate3d(0," + v + "px,0)") : h.wrapper.transform("translate3d(0," + g + "px,0)")), b = (new Date).getTime();
				var n, a;
				b - C > 300 ? a = E : (n = Math.abs(P / (b - O)), a = E + P * c.params.momentumRatio), a = Math.max(Math.min(a, g), v);
				var r = -Math.floor((a - g) / f);
				c.params.freeMode || (a = -r * f + g), h.wrapper.transform("translate3d(0," + parseInt(a, 10) + "px,0)"), h.updateItems(r, a, "", !0), c.params.updateValuesOnMomentum && (i(), h.wrapper.transitionEnd(function() {
					t.cancelAnimationFrame(w)
				})), setTimeout(function() {
					A = !0
				}, 100)
			}

			function s(e) {
				if (A) {
					t.cancelAnimationFrame(w);
					var n = t(this).attr("data-picker-value");
					h.setValue(n)
				}
			}
			var l = t(e),
				u = l.index(),
				h = c.cols[u];
			if (!h.divider) {
				h.container = l, h.wrapper = h.container.find(".picker-items-col-wrapper"), h.items = h.wrapper.find(".picker-item");
				var d, f, m, v, g;
				h.replaceValues = function(t, e) {
					h.destroyEvents(), h.values = t, h.displayValues = e;
					var n = c.columnHTML(h, !0);
					h.wrapper.html(n), h.items = h.wrapper.find(".picker-item"), h.calcSize(), h.setValue(h.values[0] || "", 0, !0), h.initEvents()
				}, h.calcSize = function() {
					if (h.values.length) {
						c.params.rotateEffect && (h.container.removeClass("picker-items-col-absolute"), h.width || h.container.css({
							width: ""
						}));
						var e, n;
						e = 0, n = h.container[0].offsetHeight, d = h.wrapper[0].offsetHeight, f = h.items[0].offsetHeight, m = f * h.items.length, v = n / 2 - m + f / 2, g = n / 2 - f / 2, h.width && (e = h.width, parseInt(e, 10) === e && (e += "px"), h.container.css({
							width: e
						})), c.params.rotateEffect && (h.width || (h.items.each(function() {
							var n = t(this);
							n.css({
								width: "auto"
							}), e = Math.max(e, n[0].offsetWidth), n.css({
								width: ""
							})
						}), h.container.css({
							width: e + 2 + "px"
						})), h.container.addClass("picker-items-col-absolute"))
					}
				}, h.calcSize(), h.wrapper.transform("translate3d(0," + g + "px,0)").transition(0);
				var w;
				h.setValue = function(e, n, a) {
					"undefined" == typeof n && (n = "");
					var r = h.wrapper.find('.picker-item[data-picker-value="' + e + '"]').index();
					if ("undefined" == typeof r || -1 === r) return void(h.value = h.displayValue = e);
					var o = -r * f + g;
					h.wrapper.transition(n), h.wrapper.transform("translate3d(0," + o + "px,0)"), c.params.updateValuesOnMomentum && h.activeIndex && h.activeIndex !== r && (t.cancelAnimationFrame(w), h.wrapper.transitionEnd(function() {
						t.cancelAnimationFrame(w)
					}), i()), h.updateItems(r, o, n, a)
				}, h.updateItems = function(e, n, i, a) {
					"undefined" == typeof n && (n = t.getTranslate(h.wrapper[0], "y")), "undefined" == typeof e && (e = -Math.round((n - g) / f)), 0 > e && (e = 0), e >= h.items.length && (e = h.items.length - 1);
					var r = h.activeIndex;
					h.activeIndex = e, h.wrapper.find(".picker-selected").removeClass("picker-selected"), c.params.rotateEffect && h.items.transition(i);
					var o = h.items.eq(e).addClass("picker-selected").transform("");
					if ((a || "undefined" == typeof a) && (h.value = o.attr("data-picker-value"), h.displayValue = h.displayValues ? h.displayValues[e] : h.value, r !== e && (h.onChange && h.onChange(c, h.value, h.displayValue), c.updateValue())), c.params.rotateEffect) {
						(n - (Math.floor((n - g) / f) * f + g)) / f;
						h.items.each(function() {
							var e = t(this),
								i = e.index() * f,
								a = g - n,
								r = i - a,
								o = r / f,
								s = Math.ceil(h.height / f / 2) + 1,
								c = -18 * o;
							c > 180 && (c = 180), -180 > c && (c = -180), Math.abs(o) > s ? e.addClass("picker-item-far") : e.removeClass("picker-item-far"), e.transform("translate3d(0, " + (-n + g) + "px, " + (p ? -110 : 0) + "px) rotateX(" + c + "deg)")
						})
					}
				}, n && h.updateItems(0, g, 0);
				var y, T, k, x, C, b, M, _, E, D, P, O, A = !0;
				h.initEvents = function(e) {
					var n = e ? "off" : "on";
					h.container[n](t.touchEvents.start, a), h.container[n](t.touchEvents.move, r), h.container[n](t.touchEvents.end, o), h.items[n]("click", s)
				}, h.destroyEvents = function() {
					h.initEvents(!0)
				}, h.container[0].f7DestroyPickerCol = function() {
					h.destroyEvents()
				}, h.initEvents()
			}
		}, c.destroyPickerCol = function(e) {
			e = t(e), "f7DestroyPickerCol" in e[0] && e[0].f7DestroyPickerCol()
		}, t(window).on("resize", a), c.columnHTML = function(t, e) {
			var n = "",
				i = "";
			if (t.divider) i += '<div class="picker-items-col picker-items-col-divider ' + (t.textAlign ? "picker-items-col-" + t.textAlign : "") + " " + (t.cssClass || "") + '">' + t.content + "</div>";
			else {
				for (var a = 0; a < t.values.length; a++) n += '<div class="picker-item" data-picker-value="' + t.values[a] + '">' + (t.displayValues ? t.displayValues[a] : t.values[a]) + "</div>";
				i += '<div class="picker-items-col ' + (t.textAlign ? "picker-items-col-" + t.textAlign : "") + " " + (t.cssClass || "") + '"><div class="picker-items-col-wrapper">' + n + "</div></div>"
			}
			return e ? n : i
		}, c.layout = function() {
			var t, e = "",
				n = "";
			c.cols = [];
			var i = "";
			for (t = 0; t < c.params.cols.length; t++) {
				var a = c.params.cols[t];
				i += c.columnHTML(c.params.cols[t]), c.cols.push(a)
			}
			n = "weui-picker-modal picker-columns " + (c.params.cssClass || "") + (c.params.rotateEffect ? " picker-3d" : "") + (1 === c.params.cols.length ? " picker-columns-single" : ""), e = '<div class="' + n + '">' + (c.params.toolbar ? c.params.toolbarTemplate.replace(/{{closeText}}/g, c.params.toolbarCloseText).replace(/{{title}}/g, c.params.title) : "") + '<div class="picker-modal-inner picker-items">' + i + '<div class="picker-center-highlight"></div></div></div>', c.pickerHTML = e
		}, c.params.input && (c.input = t(c.params.input), c.input.length > 0 && (c.params.inputReadOnly && c.input.prop("readOnly", !0), c.inline || c.input.on("click", r), c.params.inputReadOnly && c.input.on("focus mousedown", function(t) {
			t.preventDefault()
		}))), c.inline || t("html").on("click", o), c.opened = !1, c.open = function() {
			var e = n();
			c.opened || (c.layout(), e ? (c.pickerHTML = '<div class="popover popover-picker-columns"><div class="popover-inner">' + c.pickerHTML + "</div></div>", c.popover = t.popover(c.pickerHTML, c.params.input, !0), c.container = t(c.popover).find(".weui-picker-modal"), t(c.popover).on("close", function() {
				s()
			})) : c.inline ? (c.container = t(c.pickerHTML), c.container.addClass("picker-modal-inline"), t(c.params.container).append(c.container)) : (c.container = t(t.openPicker(c.pickerHTML)), t(c.container).on("close", function() {
				s()
			})), c.container[0].f7Picker = c, c.container.find(".picker-items-col").each(function() {
				var t = !0;
				(!c.initialized && c.params.value || c.initialized && c.value) && (t = !1), c.initPickerCol(this, t)
			}), c.initialized ? c.value && c.setValue(c.value, 0) : c.params.value && c.setValue(c.params.value, 0)), c.opened = !0, c.initialized = !0, c.params.onOpen && c.params.onOpen(c)
		}, c.close = function(e) {
			return c.opened && !c.inline ? i() ? void t.closePicker(c.popover) : void t.closePicker(c.container) : void 0
		}, c.destroy = function() {
			c.close(), c.params.input && c.input.length > 0 && (c.input.off("click focus", r), t(c.input).data("picker", null)), t("html").off("click", o), t(window).off("resize", a)
		}, c.inline && c.open(), c
	};
	t(document).on("click", ".close-picker", function() {
		var e = t(".weui-picker-modal.weui-picker-modal-visible");
		e.length > 0 && t.closePicker(e)
	}), t(document).on(t.touchEvents.move, ".picker-modal-inner", function(t) {
		t.preventDefault()
	}), t.openPicker = function(e, n, i) {
		"function" == typeof n && (i = n, n = void 0), t.closePicker();
		var a = t("<div class='weui-picker-container " + (n || "") + "'></div>").appendTo(document.body);
		a.show(), a.addClass("weui-picker-container-visible");
		var r = t(e).appendTo(a);
		return r.width(), r.addClass("weui-picker-modal-visible"), i && a.on("close", i), r
	}, t.updatePicker = function(e) {
		var n = t(".weui-picker-container-visible");
		if (!n[0]) return !1;
		n.html("");
		var i = t(e).appendTo(n);
		return i.addClass("weui-picker-modal-visible"), i
	}, t.closePicker = function(e, n) {
		"function" == typeof e && (n = e), t(".weui-picker-modal-visible").removeClass("weui-picker-modal-visible").transitionEnd(function() {
			t(this).parent().remove(), n && n()
		}).trigger("close")
	}, t.fn.picker = function(n) {
		var i = arguments;
		return this.each(function() {
			if (this) {
				var a = t(this),
					r = a.data("picker");
				if (!r) {
					n = t.extend({
						input: this
					}, n || {});
					var o = a.val();
					void 0 === n.value && "" !== o && (n.value = n.cols && n.cols.length > 1 ? o.split(" ") : [o]);
					var s = t.extend({
						input: this
					}, n);
					r = new e(s), a.data("picker", r)
				}
				"string" == typeof n && r[n].apply(r, Array.prototype.slice.call(i, 1))
			}
		})
	}
}($), + function(t) {
	"use strict";
	var e, n = [],
		i = function(e, i) {
			this.config = i, this.data = {
				values: "",
				titles: "",
				origins: [],
				length: 0
			}, this.$input = t(e), this.$input.prop("readOnly", !0), this.initConfig(), i = this.config, this.$input.click(t.proxy(this.open, this)), n.push(this)
		};
	i.prototype.initConfig = function() {
		this.config = t.extend({}, e, this.config);
		var n = this.config;
		n.items && n.items.length && (n.items = n.items.map(function(t, e) {
			return "string" == typeof t ? {
				title: t,
				value: t
			} : t
		}), this.tpl = t.t7.compile("<div class='weui-picker-modal weui-select-modal'>" + n.toolbarTemplate + (n.multi ? n.checkboxTemplate : n.radioTemplate) + "</div>"), void 0 !== n.input && this.$input.val(n.input), this.parseInitValue(), this._init = !0)
	}, i.prototype.updateInputValue = function(t, e) {
		var n, i;
		this.config.multi ? (n = t.join(this.config.split), i = e.join(this.config.split)) : (n = t[0], i = e[0]);
		var a = [];
		this.config.items.forEach(function(e) {
			t.each(function(t, n) {
				e.value == n && a.push(e)
			})
		}), this.$input.val(i).data("values", n), this.$input.attr("value", i).attr("data-values", n);
		var r = {
			values: n,
			titles: i,
			valuesArray: t,
			titlesArray: e,
			origins: a,
			length: a.length
		};
		this.data = r, this.$input.trigger("change", r), this.config.onChange && this.config.onChange.call(this, r)
	}, i.prototype.parseInitValue = function() {
		var t = this.$input.val(),
			e = this.config.items;
		if (this._init || void 0 !== t && null != t && "" !== t)
			for (var n = this.config.multi ? t.split(this.config.split) : [t], i = 0; i < e.length; i++) {
				e[i].checked = !1;
				for (var a = 0; a < n.length; a++) e[i].title === n[a] && (e[i].checked = !0)
			}
	}, i.prototype._bind = function(e) {
		var n = this,
			i = this.config;
		e.on("change", function(a) {
			var r = e.find("input:checked"),
				o = r.map(function() {
					return t(this).val()
				}),
				s = r.map(function() {
					return t(this).data("title")
				});
			n.updateInputValue(o, s), i.autoClose && !i.multi && n.close()
		}).trigger("change").on("click", ".close-select", function() {
			n.close()
		})
	}, i.prototype.update = function(e) {
		this.config = t.extend({}, this.config, e), this.initConfig(), this._open && this._bind(t.updatePicker(this.getHTML()))
	}, i.prototype.open = function(e, i) {
		if (!this._open) {
			for (var a = 0; a < n.length; a++) {
				var r = n[a];
				if (r !== this && r._open && !r.close()) return !1
			}
			this.parseInitValue();
			var o = this.config,
				s = this.dialog = t.openPicker(this.getHTML());
			this._bind(s), this._open = !0, o.onOpen && o.onOpen(this)
		}
	}, i.prototype.close = function(e, n) {
		if (!this._open) return !1;
		var i = this,
			a = this.config.beforeClose;
		if (!n) {
			if (a && "function" == typeof a && a.call(this, this.data.values, this.data.titles) === !1) return !1;
			if (this.config.multi) {
				if (void 0 !== this.config.min && this.data.length < this.config.min) return t.toast("请至少选择" + this.config.min + "个", "text"), !1;
				if (void 0 !== this.config.max && this.data.length > this.config.max) return t.toast("最多只能选择" + this.config.max + "个", "text"), !1
			}
		}
		return t.closePicker(function() {
			i.onClose(), e && e()
		}), !0
	}, i.prototype.onClose = function() {
		this._open = !1, this.config.onClose && this.config.onClose(this)
	}, i.prototype.getHTML = function(t) {
		var e = this.config;
		return this.tpl({
			items: e.items,
			title: e.title,
			closeText: e.closeText
		})
	}, t.fn.select = function(e, n) {
		return this.each(function() {
			var a = t(this);
			a.data("weui-select") || a.data("weui-select", new i(this, e));
			var r = a.data("weui-select");
			return "string" == typeof e && r[e].call(r, n), r
		})
	}, e = t.fn.select.prototype.defaults = {
		items: [],
		input: void 0,
		title: "请选择",
		multi: !1,
		closeText: "确定",
		autoClose: !0,
		onChange: void 0,
		beforeClose: void 0,
		onClose: void 0,
		onOpen: void 0,
		split: ",",
		min: void 0,
		max: void 0,
		toolbarTemplate: '<div class="toolbar">      <div class="toolbar-inner">      <a href="javascript:;" class="picker-button close-select">{{closeText}}</a>      <h1 class="title">{{title}}</h1>      </div>      </div>',
		radioTemplate: '<div class="weui-cells weui-cells_radio">        {{#items}}        <label class="weui-cell weui-check_label" for="weui-select-id-{{this.title}}">          <div class="weui-cell__bd weui-cell_primary">            <p>{{this.title}}</p>          </div>          <div class="weui-cell__ft">            <input type="radio" class="weui-check" name="weui-select" id="weui-select-id-{{this.title}}" value="{{this.value}}" {{#if this.checked}}checked="checked"{{/if}} data-title="{{this.title}}">            <span class="weui-icon-checked"></span>          </div>        </label>        {{/items}}      </div>',
		checkboxTemplate: '<div class="weui-cells weui-cells_checkbox">        {{#items}}        <label class="weui-cell weui-check_label" for="weui-select-id-{{this.title}}">          <div class="weui-cell__bd weui-cell_primary">            <p>{{this.title}}</p>          </div>          <div class="weui-cell__ft">            <input type="checkbox" class="weui-check" name="weui-select" id="weui-select-id-{{this.title}}" value="{{this.value}}" {{#if this.checked}}checked="checked"{{/if}} data-title="{{this.title}}" >            <span class="weui-icon-checked"></span>          </div>        </label>        {{/items}}      </div>'
	}
}($), + function(t) {
	"use strict";
	var e, n = !1,
		i = function(t, e) {
			var t = new Date(t),
				e = new Date(e);
			return t.getFullYear() === e.getFullYear() && t.getMonth() === e.getMonth() && t.getDate() === e.getDate()
		},
		a = function(a) {
			function r() {
				var e = !1;
				return p.params.convertToPopover || p.params.onlyInPopover ? (!p.inline && p.params.input && (p.params.onlyInPopover ? e = !0 : t.device.ios ? e = !!t.device.ipad : t(window).width() >= 768 && (e = !0)), e) : e
			}

			function o() {
				return !!(p.opened && p.container && p.container.length > 0 && p.container.parents(".popover").length > 0)
			}

			function s(t) {
				t = new Date(t);
				var e = t.getFullYear(),
					n = t.getMonth(),
					i = n + 1,
					a = t.getDate(),
					r = t.getDay();
				return p.params.dateFormat.replace(/yyyy/g, e).replace(/yy/g, (e + "").substring(2)).replace(/mm/g, 10 > i ? "0" + i : i).replace(/m/g, i).replace(/MM/g, p.params.monthNames[n]).replace(/M/g, p.params.monthNamesShort[n]).replace(/dd/g, 10 > a ? "0" + a : a).replace(/d/g, a).replace(/DD/g, p.params.dayNames[r]).replace(/D/g, p.params.dayNamesShort[r])
			}

			function c(t) {
				if (t.preventDefault(), !p.opened && (p.open(), p.params.scrollToInput && !r())) {
					var e = p.input.parents(".page-content");
					if (0 === e.length) return;
					var n, i = parseInt(e.css("padding-top"), 10),
						a = parseInt(e.css("padding-bottom"), 10),
						o = e[0].offsetHeight - i - p.container.height(),
						s = e[0].scrollHeight - i - p.container.height(),
						c = p.input.offset().top - i + p.input[0].offsetHeight;
					if (c > o) {
						var l = e.scrollTop() + c - o;
						l + o > s && (n = l + o - s + a, o === s && (n = p.container.height()), e.css({
							"padding-bottom": n + "px"
						})), e.scrollTop(l, 300)
					}
				}
			}

			function l(e) {
				o() || (p.input && p.input.length > 0 ? e.target !== p.input[0] && 0 === t(e.target).parents(".weui-picker-modal").length && p.close() : 0 === t(e.target).parents(".weui-picker-modal").length && p.close())
			}

			function u() {
				p.opened = !1, p.input && p.input.length > 0 && p.input.parents(".page-content").css({
					"padding-bottom": ""
				}), p.params.onClose && p.params.onClose(p), p.destroyCalendarEvents()
			}
			var p = this;
			a = a || {};
			for (var h in e) "undefined" == typeof a[h] && (a[h] = e[h]);
			p.params = a, p.initialized = !1, p.inline = !!p.params.container, p.isH = "horizontal" === p.params.direction;
			var d = p.isH && n ? -1 : 1;
			return p.animating = !1, p.addValue = function(t) {
				if (p.params.multiple) {
					p.value || (p.value = []);
					for (var e, n = 0; n < p.value.length; n++) i(t, p.value[n]) && (e = n);
					"undefined" == typeof e ? p.value.push(t) : p.value.splice(e, 1), p.updateValue()
				} else p.value = [t], p.updateValue()
			}, p.setValue = function(t) {
				var e = new Date(t[0]);
				p.setYearMonth(e.getFullYear(), e.getMonth()), p.addValue(+e)
			}, p.updateValue = function() {
				p.wrapper.find(".picker-calendar-day-selected").removeClass("picker-calendar-day-selected");
				var e, n;
				for (e = 0; e < p.value.length; e++) {
					var i = new Date(p.value[e]);
					p.wrapper.find('.picker-calendar-day[data-date="' + i.getFullYear() + "-" + i.getMonth() + "-" + i.getDate() + '"]').addClass("picker-calendar-day-selected")
				}
				if (p.params.onChange && p.params.onChange(p, p.value.map(s), p.value.map(function(t) {
						return +new Date("string" == typeof t ? t.split(/\D/).filter(function(t) {
							return !!t
						}).join("-") : t)
					})), p.input && p.input.length > 0) {
					if (p.params.formatValue) n = p.params.formatValue(p, p.value);
					else {
						for (n = [], e = 0; e < p.value.length; e++) n.push(s(p.value[e]));
						n = n.join(", ")
					}
					t(p.input).val(n), t(p.input).trigger("change")
				}
			}, p.initCalendarEvents = function() {
				function e(e) {
					if (!s && !o) {
						o = !0;
						var n = t.getTouchPosition(e);
						c = h = n.x, l = h = n.y, f = (new Date).getTime(), T = 0, C = !0, x = void 0, v = g = p.monthsTranslate
					}
				}

				function i(e) {
					if (o) {
						var n = t.getTouchPosition(e);
						if (u = n.x, h = n.y, "undefined" == typeof x && (x = !!(x || Math.abs(h - l) > Math.abs(u - c))), p.isH && x) return void(o = !1);
						if (e.preventDefault(), p.animating) return void(o = !1);
						C = !1, s || (s = !0, w = p.wrapper[0].offsetWidth, y = p.wrapper[0].offsetHeight, p.wrapper.transition(0)), e.preventDefault(), k = p.isH ? u - c : h - l, T = k / (p.isH ? w : y), g = 100 * (p.monthsTranslate * d + T), p.wrapper.transform("translate3d(" + (p.isH ? g : 0) + "%, " + (p.isH ? 0 : g) + "%, 0)")
					}
				}

				function a(t) {
					return o && s ? (o = s = !1, m = (new Date).getTime(), 300 > m - f ? Math.abs(k) < 10 ? p.resetMonth() : k >= 10 ? n ? p.nextMonth() : p.prevMonth() : n ? p.prevMonth() : p.nextMonth() : -.5 >= T ? n ? p.prevMonth() : p.nextMonth() : T >= .5 ? n ? p.nextMonth() : p.prevMonth() : p.resetMonth(), void setTimeout(function() {
						C = !0
					}, 100)) : void(o = s = !1)
				}

				function r(e) {
					if (C) {
						var n = t(e.target).parents(".picker-calendar-day");
						if (0 === n.length && t(e.target).hasClass("picker-calendar-day") && (n = t(e.target)), 0 !== n.length && !n.hasClass("picker-calendar-day-disabled")) {
							n.hasClass("picker-calendar-day-next") && p.nextMonth(), n.hasClass("picker-calendar-day-prev") && p.prevMonth();
							var i = n.attr("data-year"),
								a = n.attr("data-month"),
								r = n.attr("data-day");
							p.params.onDayClick && p.params.onDayClick(p, n[0], i, a, r), p.addValue(new Date(i, a, r).getTime()), p.params.closeOnSelect && !p.params.multiple && p.close()
						}
					}
				}
				var o, s, c, l, u, h, f, m, v, g, w, y, T, k, x, C = !0;
				p.container.find(".picker-calendar-prev-month").on("click", p.prevMonth), p.container.find(".picker-calendar-next-month").on("click", p.nextMonth), p.container.find(".picker-calendar-prev-year").on("click", p.prevYear), p.container.find(".picker-calendar-next-year").on("click", p.nextYear), p.wrapper.on("click", r), p.params.touchMove && (p.wrapper.on(t.touchEvents.start, e), p.wrapper.on(t.touchEvents.move, i), p.wrapper.on(t.touchEvents.end, a)), p.container[0].f7DestroyCalendarEvents = function() {
					p.container.find(".picker-calendar-prev-month").off("click", p.prevMonth), p.container.find(".picker-calendar-next-month").off("click", p.nextMonth), p.container.find(".picker-calendar-prev-year").off("click", p.prevYear), p.container.find(".picker-calendar-next-year").off("click", p.nextYear), p.wrapper.off("click", r), p.params.touchMove && (p.wrapper.off(t.touchEvents.start, e), p.wrapper.off(t.touchEvents.move, i), p.wrapper.off(t.touchEvents.end, a))
				}
			}, p.destroyCalendarEvents = function(t) {
				"f7DestroyCalendarEvents" in p.container[0] && p.container[0].f7DestroyCalendarEvents()
			}, p.daysInMonth = function(t) {
				var e = new Date(t);
				return new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate()
			}, p.monthHTML = function(t, e) {
				t = new Date(t);
				var n = t.getFullYear(),
					i = t.getMonth();
				t.getDate();
				"next" === e && (t = 11 === i ? new Date(n + 1, 0) : new Date(n, i + 1, 1)), "prev" === e && (t = 0 === i ? new Date(n - 1, 11) : new Date(n, i - 1, 1)), "next" !== e && "prev" !== e || (i = t.getMonth(), n = t.getFullYear());
				var a = p.daysInMonth(new Date(t.getFullYear(), t.getMonth()).getTime() - 864e6),
					r = p.daysInMonth(t),
					o = new Date(t.getFullYear(), t.getMonth()).getDay();
				0 === o && (o = 7);
				var s, c, l, u = [],
					h = 6,
					d = 7,
					f = "",
					m = 0 + (p.params.firstDay - 1),
					v = (new Date).setHours(0, 0, 0, 0),
					g = p.params.minDate ? new Date(p.params.minDate).getTime() : null,
					w = p.params.maxDate ? new Date(p.params.maxDate).getTime() : null;
				if (p.value && p.value.length)
					for (c = 0; c < p.value.length; c++) u.push(new Date(p.value[c]).setHours(0, 0, 0, 0));
				for (c = 1; h >= c; c++) {
					var y = "";
					for (l = 1; d >= l; l++) {
						var T = l;
						m++;
						var k = m - o,
							x = "";
						0 > k ? (k = a + k + 1, x += " picker-calendar-day-prev", s = new Date(0 > i - 1 ? n - 1 : n, 0 > i - 1 ? 11 : i - 1, k).getTime()) : (k += 1, k > r ? (k -= r, x += " picker-calendar-day-next", s = new Date(i + 1 > 11 ? n + 1 : n, i + 1 > 11 ? 0 : i + 1, k).getTime()) : s = new Date(n, i, k).getTime()), s === v && (x += " picker-calendar-day-today"), u.indexOf(s) >= 0 && (x += " picker-calendar-day-selected"), p.params.weekendDays.indexOf(T - 1) >= 0 && (x += " picker-calendar-day-weekend"), (g && g > s || w && s > w) && (x += " picker-calendar-day-disabled"), s = new Date(s);
						var C = s.getFullYear(),
							b = s.getMonth();
						y += '<div data-year="' + C + '" data-month="' + b + '" data-day="' + k + '" class="picker-calendar-day' + x + '" data-date="' + (C + "-" + b + "-" + k) + '"><span>' + k + "</span></div>"
					}
					f += '<div class="picker-calendar-row">' + y + "</div>"
				}
				return f = '<div class="picker-calendar-month" data-year="' + n + '" data-month="' + i + '">' + f + "</div>"
			}, p.animating = !1, p.updateCurrentMonthYear = function(t) {
				"undefined" == typeof t ? (p.currentMonth = parseInt(p.months.eq(1).attr("data-month"), 10), p.currentYear = parseInt(p.months.eq(1).attr("data-year"), 10)) : (p.currentMonth = parseInt(p.months.eq("next" === t ? p.months.length - 1 : 0).attr("data-month"), 10), p.currentYear = parseInt(p.months.eq("next" === t ? p.months.length - 1 : 0).attr("data-year"), 10)), p.container.find(".current-month-value").text(p.params.monthNames[p.currentMonth]), p.container.find(".current-year-value").text(p.currentYear)
			}, p.onMonthChangeStart = function(t) {
				p.updateCurrentMonthYear(t), p.months.removeClass("picker-calendar-month-current picker-calendar-month-prev picker-calendar-month-next");
				var e = "next" === t ? p.months.length - 1 : 0;
				p.months.eq(e).addClass("picker-calendar-month-current"), p.months.eq("next" === t ? e - 1 : e + 1).addClass("next" === t ? "picker-calendar-month-prev" : "picker-calendar-month-next"), p.params.onMonthYearChangeStart && p.params.onMonthYearChangeStart(p, p.currentYear, p.currentMonth)
			}, p.onMonthChangeEnd = function(t, e) {
				p.animating = !1;
				var n, i, a;
				p.wrapper.find(".picker-calendar-month:not(.picker-calendar-month-prev):not(.picker-calendar-month-current):not(.picker-calendar-month-next)").remove(), "undefined" == typeof t && (t = "next", e = !0), e ? (p.wrapper.find(".picker-calendar-month-next, .picker-calendar-month-prev").remove(), i = p.monthHTML(new Date(p.currentYear, p.currentMonth), "prev"), n = p.monthHTML(new Date(p.currentYear, p.currentMonth), "next")) : a = p.monthHTML(new Date(p.currentYear, p.currentMonth), t), ("next" === t || e) && p.wrapper.append(a || n), ("prev" === t || e) && p.wrapper.prepend(a || i), p.months = p.wrapper.find(".picker-calendar-month"), p.setMonthsTranslate(p.monthsTranslate), p.params.onMonthAdd && p.params.onMonthAdd(p, "next" === t ? p.months.eq(p.months.length - 1)[0] : p.months.eq(0)[0]), p.params.onMonthYearChangeEnd && p.params.onMonthYearChangeEnd(p, p.currentYear, p.currentMonth)
			}, p.setMonthsTranslate = function(t) {
				t = t || p.monthsTranslate || 0, "undefined" == typeof p.monthsTranslate && (p.monthsTranslate = t), p.months.removeClass("picker-calendar-month-current picker-calendar-month-prev picker-calendar-month-next");
				var e = 100 * -(t + 1) * d,
					n = 100 * -t * d,
					i = 100 * -(t - 1) * d;
				p.months.eq(0).transform("translate3d(" + (p.isH ? e : 0) + "%, " + (p.isH ? 0 : e) + "%, 0)").addClass("picker-calendar-month-prev"), p.months.eq(1).transform("translate3d(" + (p.isH ? n : 0) + "%, " + (p.isH ? 0 : n) + "%, 0)").addClass("picker-calendar-month-current"), p.months.eq(2).transform("translate3d(" + (p.isH ? i : 0) + "%, " + (p.isH ? 0 : i) + "%, 0)").addClass("picker-calendar-month-next")
			}, p.nextMonth = function(e) {
				"undefined" != typeof e && "object" != typeof e || (e = "", p.params.animate || (e = 0));
				var n = parseInt(p.months.eq(p.months.length - 1).attr("data-month"), 10),
					i = parseInt(p.months.eq(p.months.length - 1).attr("data-year"), 10),
					a = new Date(i, n),
					r = a.getTime(),
					o = !p.animating;
				if (p.params.maxDate && r > new Date(p.params.maxDate).getTime()) return p.resetMonth();
				if (p.monthsTranslate--, n === p.currentMonth) {
					var s = 100 * -p.monthsTranslate * d,
						c = t(p.monthHTML(r, "next")).transform("translate3d(" + (p.isH ? s : 0) + "%, " + (p.isH ? 0 : s) + "%, 0)").addClass("picker-calendar-month-next");
					p.wrapper.append(c[0]), p.months = p.wrapper.find(".picker-calendar-month"), p.params.onMonthAdd && p.params.onMonthAdd(p, p.months.eq(p.months.length - 1)[0])
				}
				p.animating = !0, p.onMonthChangeStart("next");
				var l = 100 * p.monthsTranslate * d;
				p.wrapper.transition(e).transform("translate3d(" + (p.isH ? l : 0) + "%, " + (p.isH ? 0 : l) + "%, 0)"), o && p.wrapper.transitionEnd(function() {
					p.onMonthChangeEnd("next")
				}), p.params.animate || p.onMonthChangeEnd("next")
			}, p.prevMonth = function(e) {
				"undefined" != typeof e && "object" != typeof e || (e = "", p.params.animate || (e = 0));
				var n = parseInt(p.months.eq(0).attr("data-month"), 10),
					i = parseInt(p.months.eq(0).attr("data-year"), 10),
					a = new Date(i, n + 1, -1),
					r = a.getTime(),
					o = !p.animating;
				if (p.params.minDate && r < new Date(p.params.minDate).getTime()) return p.resetMonth();
				if (p.monthsTranslate++, n === p.currentMonth) {
					var s = 100 * -p.monthsTranslate * d,
						c = t(p.monthHTML(r, "prev")).transform("translate3d(" + (p.isH ? s : 0) + "%, " + (p.isH ? 0 : s) + "%, 0)").addClass("picker-calendar-month-prev");
					p.wrapper.prepend(c[0]), p.months = p.wrapper.find(".picker-calendar-month"), p.params.onMonthAdd && p.params.onMonthAdd(p, p.months.eq(0)[0])
				}
				p.animating = !0, p.onMonthChangeStart("prev");
				var l = 100 * p.monthsTranslate * d;
				p.wrapper.transition(e).transform("translate3d(" + (p.isH ? l : 0) + "%, " + (p.isH ? 0 : l) + "%, 0)"), o && p.wrapper.transitionEnd(function() {
					p.onMonthChangeEnd("prev")
				}), p.params.animate || p.onMonthChangeEnd("prev")
			}, p.resetMonth = function(t) {
				"undefined" == typeof t && (t = "");
				var e = 100 * p.monthsTranslate * d;
				p.wrapper.transition(t).transform("translate3d(" + (p.isH ? e : 0) + "%, " + (p.isH ? 0 : e) + "%, 0)")
			}, p.setYearMonth = function(t, e, n) {
				"undefined" == typeof t && (t = p.currentYear), "undefined" == typeof e && (e = p.currentMonth), "undefined" != typeof n && "object" != typeof n || (n = "", p.params.animate || (n = 0));
				var i;
				if (i = t < p.currentYear ? new Date(t, e + 1, -1).getTime() : new Date(t, e).getTime(), p.params.maxDate && i > new Date(p.params.maxDate).getTime()) return !1;
				if (p.params.minDate && i < new Date(p.params.minDate).getTime()) return !1;
				var a = new Date(p.currentYear, p.currentMonth).getTime(),
					r = i > a ? "next" : "prev",
					o = p.monthHTML(new Date(t, e));
				p.monthsTranslate = p.monthsTranslate || 0;
				var s, c, l = p.monthsTranslate,
					u = !p.animating;
				i > a ? (p.monthsTranslate--, p.animating || p.months.eq(p.months.length - 1).remove(), p.wrapper.append(o), p.months = p.wrapper.find(".picker-calendar-month"), s = 100 * -(l - 1) * d, p.months.eq(p.months.length - 1).transform("translate3d(" + (p.isH ? s : 0) + "%, " + (p.isH ? 0 : s) + "%, 0)").addClass("picker-calendar-month-next")) : (p.monthsTranslate++, p.animating || p.months.eq(0).remove(), p.wrapper.prepend(o), p.months = p.wrapper.find(".picker-calendar-month"), s = 100 * -(l + 1) * d, p.months.eq(0).transform("translate3d(" + (p.isH ? s : 0) + "%, " + (p.isH ? 0 : s) + "%, 0)").addClass("picker-calendar-month-prev")), p.params.onMonthAdd && p.params.onMonthAdd(p, "next" === r ? p.months.eq(p.months.length - 1)[0] : p.months.eq(0)[0]), p.animating = !0, p.onMonthChangeStart(r), c = 100 * p.monthsTranslate * d, p.wrapper.transition(n).transform("translate3d(" + (p.isH ? c : 0) + "%, " + (p.isH ? 0 : c) + "%, 0)"), u && p.wrapper.transitionEnd(function() {
					p.onMonthChangeEnd(r, !0)
				}), p.params.animate || p.onMonthChangeEnd(r)
			}, p.nextYear = function() {
				p.setYearMonth(p.currentYear + 1)
			}, p.prevYear = function() {
				p.setYearMonth(p.currentYear - 1)
			}, p.layout = function() {
				var t, e = "",
					n = "",
					i = p.value && p.value.length ? p.value[0] : (new Date).setHours(0, 0, 0, 0),
					a = p.monthHTML(i, "prev"),
					r = p.monthHTML(i),
					o = p.monthHTML(i, "next"),
					s = '<div class="picker-calendar-months"><div class="picker-calendar-months-wrapper">' + (a + r + o) + "</div></div>",
					c = "";
				if (p.params.weekHeader) {
					for (t = 0; 7 > t; t++) {
						var l = t + p.params.firstDay > 6 ? t - 7 + p.params.firstDay : t + p.params.firstDay,
							u = p.params.dayNamesShort[l];
						c += '<div class="picker-calendar-week-day ' + (p.params.weekendDays.indexOf(l) >= 0 ? "picker-calendar-week-day-weekend" : "") + '"> ' + u + "</div>"
					}
					c = '<div class="picker-calendar-week-days">' + c + "</div>"
				}
				n = "weui-picker-calendar " + (p.params.cssClass || ""), p.inline || (n = "weui-picker-modal " + n);
				var h = p.params.toolbar ? p.params.toolbarTemplate.replace(/{{closeText}}/g, p.params.toolbarCloseText) : "";
				p.params.toolbar && (h = p.params.toolbarTemplate.replace(/{{closeText}}/g, p.params.toolbarCloseText).replace(/{{monthPicker}}/g, p.params.monthPicker ? p.params.monthPickerTemplate : "").replace(/{{yearPicker}}/g, p.params.yearPicker ? p.params.yearPickerTemplate : "")), e = '<div class="' + n + '">' + h + '<div class="picker-modal-inner">' + c + s + "</div></div>", p.pickerHTML = e
			}, p.params.input && (p.input = t(p.params.input), p.input.length > 0 && (p.params.inputReadOnly && p.input.prop("readOnly", !0), p.inline || p.input.on("click", c), p.params.inputReadOnly && p.input.on("focus mousedown", function(t) {
				t.preventDefault()
			}))), p.inline || t(document).on("click touchend", l), p.opened = !1, p.open = function() {
				var e = r() && !1,
					n = !1;
				p.opened || (p.value || p.params.value && (p.value = p.params.value, n = !0), p.layout(), e ? (p.pickerHTML = '<div class="popover popover-picker-calendar"><div class="popover-inner">' + p.pickerHTML + "</div></div>", p.popover = t.popover(p.pickerHTML, p.params.input, !0), p.container = t(p.popover).find(".weui-picker-modal"), t(p.popover).on("close", function() {
					u()
				})) : p.inline ? (p.container = t(p.pickerHTML), p.container.addClass("picker-modal-inline"), t(p.params.container).append(p.container)) : (p.container = t(t.openPicker(p.pickerHTML)), t(p.container).on("close", function() {
					u()
				})), p.container[0].f7Calendar = p, p.wrapper = p.container.find(".picker-calendar-months-wrapper"), p.months = p.wrapper.find(".picker-calendar-month"), p.updateCurrentMonthYear(), p.monthsTranslate = 0, p.setMonthsTranslate(), p.initCalendarEvents(), n && p.updateValue()), p.opened = !0, p.initialized = !0, p.params.onMonthAdd && p.months.each(function() {
					p.params.onMonthAdd(p, this)
				}), p.params.onOpen && p.params.onOpen(p)
			}, p.close = function() {
				return p.opened && !p.inline ? (p.animating = !1, o() ? void t.closePicker(p.popover) : void t.closePicker(p.container)) : void 0
			}, p.destroy = function() {
				p.close(), p.params.input && p.input.length > 0 && (p.input.off("click focus", c), p.input.data("calendar", null)), t("html").off("click", l)
			}, p.inline && p.open(), p
		},
		r = function(t) {
			return 10 > t ? "0" + t : t
		};
	t.fn.calendar = function(e, n) {
		return e = e || {}, this.each(function() {
			var i = t(this);
			if (i[0]) {
				var o = {};
				"INPUT" === i[0].tagName.toUpperCase() ? o.input = i : o.container = i;
				var s = i.data("calendar");
				if (!s)
					if ("string" == typeof e);
					else {
						if (!e.value && i.val() && (e.value = [i.val()]), !e.value) {
							var c = new Date;
							e.value = [c.getFullYear() + "/" + r(c.getMonth() + 1) + "/" + r(c.getDate())]
						}
						s = i.data("calendar", new a(t.extend(o, e)))
					}
				"string" == typeof e && s[e].call(s, n)
			}
		})
	}, e = t.fn.calendar.prototype.defaults = {
		value: void 0,
		monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
		monthNamesShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
		dayNames: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
		dayNamesShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
		firstDay: 1,
		weekendDays: [0, 6],
		multiple: !1,
		dateFormat: "yyyy/mm/dd",
		direction: "horizontal",
		minDate: null,
		maxDate: null,
		touchMove: !0,
		animate: !0,
		closeOnSelect: !0,
		monthPicker: !0,
		monthPickerTemplate: '<div class="picker-calendar-month-picker"><a href="javascript:;" class="link icon-only picker-calendar-prev-month"><i class="icon icon-prev"></i></a><div class="current-month-value"></div><a href="javascript:;" class="link icon-only picker-calendar-next-month"><i class="icon icon-next"></i></a></div>',
		yearPicker: !0,
		yearPickerTemplate: '<div class="picker-calendar-year-picker"><a href="javascript:;" class="link icon-only picker-calendar-prev-year"><i class="icon icon-prev"></i></a><span class="current-year-value"></span><a href="javascript:;" class="link icon-only picker-calendar-next-year"><i class="icon icon-next"></i></a></div>',
		weekHeader: !0,
		scrollToInput: !0,
		inputReadOnly: !0,
		convertToPopover: !0,
		onlyInPopover: !1,
		toolbar: !0,
		toolbarCloseText: "Done",
		toolbarTemplate: '<div class="toolbar"><div class="toolbar-inner">{{yearPicker}}{{monthPicker}}</div></div>'
	}
}($), + function(t) {
	"use strict";
	var e, n = function(t) {
			return 10 > t ? "0" + t : t
		},
		i = function(e, n) {
			this.input = t(e), this.params = n || {}, this.initMonthes = n.monthes, this.initYears = n.years;
			var i = t.extend({}, n, this.getConfig());
			t(this.input).picker(i)
		};
	i.prototype = {
		getDays: function(t) {
			for (var e = [], n = 1;
				(t || 31) >= n; n++) e.push(10 > n ? "0" + n : n);
			return e
		},
		getDaysByMonthAndYear: function(t, e) {
			var n = new Date(e, parseInt(t) + 1 - 1, 1),
				i = new Date(n - 1);
			return this.getDays(i.getDate())
		},
		getConfig: function() {
			var t, e = new Date,
				i = this.params,
				a = this,
				r = {
					rotateEffect: !1,
					cssClass: "datetime-picker",
					value: [e.getFullYear(), n(e.getMonth() + 1), n(e.getDate()), n(e.getHours()), n(e.getMinutes())],
					onChange: function(e, n, r) {
						var o = (e.cols, a.getDaysByMonthAndYear(n[1], n[0])),
							s = n[2];
						s > o.length && (s = o.length), e.cols[4].setValue(s);
						var c = new Date(n[0] + "-" + n[1] + "-" + n[2]),
							l = !0;
						if (i.min) {
							var u = new Date("function" == typeof i.min ? i.min() : i.min); + u > c && (e.setValue(t), l = !1)
						}
						if (i.max) {
							var p = new Date("function" == typeof i.max ? i.max() : i.max);
							c > +p && (e.setValue(t), l = !1)
						}
						l && (t = n), a.params.onChange && a.params.onChange.apply(this, arguments)
					},
					formatValue: function(t, e, n) {
						return a.params.format(t, e, n)
					},
					cols: [{
						values: this.initYears
					}, {
						divider: !0,
						content: i.yearSplit
					}, {
						values: this.initMonthes
					}, {
						divider: !0,
						content: i.monthSplit
					}, {
						values: function() {
							for (var t = [], e = 1; 31 >= e; e++) t.push(n(e));
							return t
						}()
					}]
				};
			i.dateSplit && r.cols.push({
				divider: !0,
				content: i.dateSplit
			}), r.cols.push({
				divider: !0,
				content: i.datetimeSplit
			});
			var o = a.params.times();
			o && o.length && (r.cols = r.cols.concat(o));
			var s = this.input.val();
			return s && (r.value = i.parse(s)), this.params.value && (this.input.val(this.params.value), r.value = i.parse(this.params.value)), r
		}
	}, t.fn.datetimePicker = function(n) {
		return n = t.extend({}, e, n), this.each(function() {
			if (this) {
				var e = t(this),
					a = e.data("datetime");
				return a || e.data("datetime", new i(this, n)), a
			}
		})
	}, e = t.fn.datetimePicker.prototype.defaults = {
		input: void 0,
		min: void 0,
		max: void 0,
		yearSplit: "-",
		monthSplit: "-",
		dateSplit: "",
		datetimeSplit: " ",
		monthes: "01 02 03 04 05 06 07 08 09 10 11 12".split(" "),
		years: function() {
			for (var t = [], e = 1950; 2030 >= e; e++) t.push(e);
			return t
		}(),
		times: function() {
			return [{
				values: function() {
					for (var t = [], e = 0; 24 > e; e++) t.push(n(e));
					return t
				}()
			}, {
				divider: !0,
				content: ":"
			}, {
				values: function() {
					for (var t = [], e = 0; 60 > e; e++) t.push(n(e));
					return t
				}()
			}]
		},
		format: function(t, e) {
			return t.cols.map(function(t) {
				return t.value || t.content
			}).join("")
		},
		parse: function(t) {
			var e = t.split(this.datetimeSplit);
			return e[0].split(/\D/).concat(e[1].split(/:|时|分|秒/)).filter(function(t) {
				return !!t
			})
		}
	}
}($), + function(t) {
	"use strict";
	t.openPopup = function(e, n) {
		t.closePopup(), e = t(e), e.show(), e.width(), e.addClass("weui-popup__container--visible");
		var i = e.find(".weui-popup__modal");
		i.width(), i.transitionEnd(function() {
			i.trigger("open")
		})
	}, t.closePopup = function(e, n) {
		e = t(e || ".weui-popup__container--visible"), e.find(".weui-popup__modal").transitionEnd(function() {
			var i = t(this);
			i.trigger("close"), e.hide(), n && e.remove()
		}), e.removeClass("weui-popup__container--visible")
	}, t(document).on("click", ".close-popup, .weui-popup__overlay", function() {
		t.closePopup()
	}).on("click", ".open-popup", function() {
		t(t(this).data("target")).popup()
	}).on("click", ".weui-popup__container", function(e) {
		t(e.target).hasClass("weui-popup__container") && t.closePopup()
	}), t.fn.popup = function() {
		return this.each(function() {
			t.openPopup(this)
		})
	}
}($), + function(t) {
	"use strict";
	var e, n, i, a, r, o, s = function(n) {
			var i = t.getTouchPosition(n);
			a = i, r = o = 0, e.addClass("touching")
		},
		c = function(n) {
			if (!a) return !1;
			n.preventDefault(), n.stopPropagation();
			var i = t.getTouchPosition(n);
			r = i.x - a.x, o = i.y - a.y, o > 0 && (o = Math.sqrt(o)), e.css("transform", "translate3d(0, " + o + "px, 0)")
		},
		l = function() {
			e.removeClass("touching"), e.attr("style", ""), 0 > o && Math.abs(o) > .38 * e.height() && t.closeNotification(), Math.abs(r) <= 1 && Math.abs(o) <= 1 && e.trigger("noti-click"), a = !1
		},
		u = function(e) {
			e.on(t.touchEvents.start, s), e.on(t.touchEvents.move, c), e.on(t.touchEvents.end, l)
		};
	t.notification = t.noti = function(a) {
		a = t.extend({}, n, a), e = t(".weui-notification"), e[0] || (e = t('<div class="weui-notification"></div>').appendTo(document.body), u(e)), e.off("noti-click"), a.onClick && e.on("noti-click", function() {
			a.onClick(a.data)
		}), e.html(t.t7.compile(a.tpl)(a)), e.show(), e.addClass("weui-notification--in"), e.data("params", a);
		var r = function() {
			i && (clearTimeout(i), i = null), i = setTimeout(function() {
				e.hasClass("weui-notification--touching") ? r() : t.closeNotification()
			}, a.time)
		};
		r()
	}, t.closeNotification = function() {
		i && clearTimeout(i), i = null;
		var e = t(".weui-notification").removeClass("weui-notification--in").transitionEnd(function() {
			t(this).remove()
		});
		if (e[0]) {
			var n = t(".weui-notification").data("params");
			n && n.onClose && n.onClose(n.data)
		}
	}, n = t.noti.prototype.defaults = {
		title: void 0,
		text: void 0,
		media: void 0,
		time: 4e3,
		onClick: void 0,
		onClose: void 0,
		data: void 0,
		tpl: '<div class="weui-notification__inner">{{#if media}}<div class="weui-notification__media">{{media}}</div>{{/if}}<div class="weui-notification__content">{{#if title}}<div class="weui-notification__title">{{title}}</div>{{/if}}{{#if text}}<div class="weui-notification__text">{{text}}</div>{{/if}}</div><div class="weui-notification__handle-bar"></div></div>'
	}
}($), + function(t) {
	"use strict";
	var e;
	t.toptip = function(n, i, a) {
		if (n) {
			"string" == typeof i && (a = i, i = void 0), i = i || 3e3;
			var r = a ? "bg-" + a : "bg-danger",
				o = t(".weui-toptips").remove();
			o = t('<div class="weui-toptips"></div>').appendTo(document.body), o.html(n), o[0].className = "weui-toptips " + r, clearTimeout(e), o.hasClass("weui-toptips_visible") || (o.show().width(), o.addClass("weui-toptips_visible")), e = setTimeout(function() {
				o.removeClass("weui-toptips_visible").transitionEnd(function() {
					o.remove()
				})
			}, i)
		}
	}
}($), + function(t) {
	"use strict";
	var e = function(e, n) {
		this.container = t(e), this.handler = this.container.find(".weui-slider__handler"), this.track = this.container.find(".weui-slider__track"), this.value = this.container.find(".weui-slider-box__value"), this.bind(), "function" == typeof n && (this.callback = n)
	};
	e.prototype.bind = function() {
		this.container.on(t.touchEvents.start, t.proxy(this.touchStart, this)).on(t.touchEvents.end, t.proxy(this.touchEnd, this)), t(document.body).on(t.touchEvents.move, t.proxy(this.touchMove, this))
	}, e.prototype.touchStart = function(e) {
		e.preventDefault(), this.start = t.getTouchPosition(e), this.width = this.container.find(".weui-slider__inner").width(), this.left = parseInt(this.container.find(".weui-slider__handler").css("left")), this.touching = !0
	}, e.prototype.touchMove = function(e) {
		if (!this.touching) return !0;
		var n = t.getTouchPosition(e),
			i = n.x - this.start.x,
			a = i + this.left,
			r = parseInt(a / this.width * 100);
		0 > r && (r = 0), r > 100 && (r = 100), this.handler.css("left", r + "%"), this.track.css("width", r + "%"), this.value.text(r), this.callback && this.callback.call(this, r), this.container.trigger("change", r)
	}, e.prototype.touchEnd = function(t) {
		this.touching = !1
	}, t.fn.slider = function(n) {
		this.each(function() {
			var i = t(this),
				a = i.data("slider");
			return a ? a : void i.data("slider", new e(this, n))
		})
	}
}($), + function(t) {
	"use strict";
	var e = [],
		n = "swipeout-touching",
		i = function(n) {
			this.container = t(n), this.mover = this.container.find(">.weui-cell__bd"), this.attachEvents(), e.push(this)
		};
	i.prototype.touchStart = function(e) {
		var i = t.getTouchPosition(e);
		this.container.addClass(n), this.start = i, this.startX = 0, this.startTime = +new Date;
		var a = this.mover.css("transform").match(/-?[\d\.]+/g);
		a && a.length && (this.startX = parseInt(a[4])), this.diffX = this.diffY = 0, this._closeOthers(), this.limit = this.container.find(">.weui-cell__ft").width() || 68
	}, i.prototype.touchMove = function(e) {
		if (!this.start) return !0;
		var n = t.getTouchPosition(e);
		if (this.diffX = n.x - this.start.x, this.diffY = n.y - this.start.y, Math.abs(this.diffX) < Math.abs(this.diffY)) return this.close(), this.start = !1, !0;
		e.preventDefault(), e.stopPropagation();
		var i = this.diffX + this.startX;
		i > 0 && (i = 0), Math.abs(i) > this.limit && (i = -(Math.pow(-(i + this.limit), .7) + this.limit)), this.mover.css("transform", "translate3d(" + i + "px, 0, 0)")
	}, i.prototype.touchEnd = function() {
		if (!this.start) return !0;
		this.start = !1;
		var t = this.diffX + this.startX,
			e = new Date - this.startTime;
		this.diffX < -5 && 200 > e ? this.open() : this.diffX >= 0 && 200 > e ? this.close() : t > 0 || -t <= this.limit / 2 ? this.close() : this.open()
	}, i.prototype.close = function() {
		this.container.removeClass(n), this.mover.css("transform", "translate3d(0, 0, 0)"), this.container.trigger("swipeout-close")
	}, i.prototype.open = function() {
		this.container.removeClass(n), this._closeOthers(), this.mover.css("transform", "translate3d(" + -this.limit + "px, 0, 0)"), this.container.trigger("swipeout-open")
	}, i.prototype.attachEvents = function() {
		var e = this.mover;
		e.on(t.touchEvents.start, t.proxy(this.touchStart, this)), e.on(t.touchEvents.move, t.proxy(this.touchMove, this)), e.on(t.touchEvents.end, t.proxy(this.touchEnd, this))
	}, i.prototype._closeOthers = function() {
		var t = this;
		e.forEach(function(e) {
			e !== t && e.close()
		})
	};
	var a = function(t) {
		return new i(t)
	};
	t.fn.swipeout = function(e) {
		return this.each(function() {
			var n = t(this),
				i = n.data("swipeout") || a(this);
			n.data("swipeout", i), "string" == typeof e && i[e]()
		})
	}, t(".weui-cell_swiped").swipeout()
}($);

/**
 * Swiper 3.3.1
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * 
 * http://www.idangero.us/swiper/
 * 
 * Copyright 2016, Vladimir Kharlampidi
 * The iDangero.us
 * http://www.idangero.us/
 * 
 * Licensed under MIT
 * 
 * Released on: February 7, 2016
 */
! function() {
	"use strict";

	function e(e) {
		e.fn.swiper = function(a) {
			var i;
			return e(this).each(function() {
				var e = new t(this, a);
				i || (i = e)
			}), i
		}
	}
	var a, t = function(e, i) {
		function s(e) {
			return Math.floor(e)
		}

		function r() {
			y.autoplayTimeoutId = setTimeout(function() {
				y.params.loop ? (y.fixLoop(), y._slideNext(), y.emit("onAutoplay", y)) : y.isEnd ? i.autoplayStopOnLast ? y.stopAutoplay() : (y._slideTo(0), y.emit("onAutoplay", y)) : (y._slideNext(), y.emit("onAutoplay", y))
			}, y.params.autoplay)
		}

		function n(e, t) {
			var i = a(e.target);
			if (!i.is(t))
				if ("string" == typeof t) i = i.parents(t);
				else if (t.nodeType) {
				var s;
				return i.parents().each(function(e, a) {
					a === t && (s = t)
				}), s ? t : void 0
			}
			if (0 !== i.length) return i[0]
		}

		function o(e, a) {
			a = a || {};
			var t = window.MutationObserver || window.WebkitMutationObserver,
				i = new t(function(e) {
					e.forEach(function(e) {
						y.onResize(!0), y.emit("onObserverUpdate", y, e)
					})
				});
			i.observe(e, {
				attributes: "undefined" == typeof a.attributes ? !0 : a.attributes,
				childList: "undefined" == typeof a.childList ? !0 : a.childList,
				characterData: "undefined" == typeof a.characterData ? !0 : a.characterData
			}), y.observers.push(i)
		}

		function l(e) {
			e.originalEvent && (e = e.originalEvent);
			var a = e.keyCode || e.charCode;
			if (!y.params.allowSwipeToNext && (y.isHorizontal() && 39 === a || !y.isHorizontal() && 40 === a)) return !1;
			if (!y.params.allowSwipeToPrev && (y.isHorizontal() && 37 === a || !y.isHorizontal() && 38 === a)) return !1;
			if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) {
				if (37 === a || 39 === a || 38 === a || 40 === a) {
					var t = !1;
					if (y.container.parents(".swiper-slide").length > 0 && 0 === y.container.parents(".swiper-slide-active").length) return;
					var i = {
							left: window.pageXOffset,
							top: window.pageYOffset
						},
						s = window.innerWidth,
						r = window.innerHeight,
						n = y.container.offset();
					y.rtl && (n.left = n.left - y.container[0].scrollLeft);
					for (var o = [
							[n.left, n.top],
							[n.left + y.width, n.top],
							[n.left, n.top + y.height],
							[n.left + y.width, n.top + y.height]
						], l = 0; l < o.length; l++) {
						var p = o[l];
						p[0] >= i.left && p[0] <= i.left + s && p[1] >= i.top && p[1] <= i.top + r && (t = !0)
					}
					if (!t) return
				}
				y.isHorizontal() ? (37 !== a && 39 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), (39 === a && !y.rtl || 37 === a && y.rtl) && y.slideNext(), (37 === a && !y.rtl || 39 === a && y.rtl) && y.slidePrev()) : (38 !== a && 40 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), 40 === a && y.slideNext(), 38 === a && y.slidePrev())
			}
		}

		function p(e) {
			e.originalEvent && (e = e.originalEvent);
			var a = y.mousewheel.event,
				t = 0,
				i = y.rtl ? -1 : 1;
			if ("mousewheel" === a)
				if (y.params.mousewheelForceToAxis)
					if (y.isHorizontal()) {
						if (!(Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY))) return;
						t = e.wheelDeltaX * i
					} else {
						if (!(Math.abs(e.wheelDeltaY) > Math.abs(e.wheelDeltaX))) return;
						t = e.wheelDeltaY
					}
			else t = Math.abs(e.wheelDeltaX) > Math.abs(e.wheelDeltaY) ? -e.wheelDeltaX * i : -e.wheelDeltaY;
			else if ("DOMMouseScroll" === a) t = -e.detail;
			else if ("wheel" === a)
				if (y.params.mousewheelForceToAxis)
					if (y.isHorizontal()) {
						if (!(Math.abs(e.deltaX) > Math.abs(e.deltaY))) return;
						t = -e.deltaX * i
					} else {
						if (!(Math.abs(e.deltaY) > Math.abs(e.deltaX))) return;
						t = -e.deltaY
					}
			else t = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? -e.deltaX * i : -e.deltaY;
			if (0 !== t) {
				if (y.params.mousewheelInvert && (t = -t), y.params.freeMode) {
					var s = y.getWrapperTranslate() + t * y.params.mousewheelSensitivity,
						r = y.isBeginning,
						n = y.isEnd;
					if (s >= y.minTranslate() && (s = y.minTranslate()), s <= y.maxTranslate() && (s = y.maxTranslate()), y.setWrapperTransition(0), y.setWrapperTranslate(s), y.updateProgress(), y.updateActiveIndex(), (!r && y.isBeginning || !n && y.isEnd) && y.updateClasses(), y.params.freeModeSticky ? (clearTimeout(y.mousewheel.timeout), y.mousewheel.timeout = setTimeout(function() {
							y.slideReset()
						}, 300)) : y.params.lazyLoading && y.lazy && y.lazy.load(), 0 === s || s === y.maxTranslate()) return
				} else {
					if ((new window.Date).getTime() - y.mousewheel.lastScrollTime > 60)
						if (0 > t)
							if (y.isEnd && !y.params.loop || y.animating) {
								if (y.params.mousewheelReleaseOnEdges) return !0
							} else y.slideNext();
					else if (y.isBeginning && !y.params.loop || y.animating) {
						if (y.params.mousewheelReleaseOnEdges) return !0
					} else y.slidePrev();
					y.mousewheel.lastScrollTime = (new window.Date).getTime()
				}
				return y.params.autoplay && y.stopAutoplay(), e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1
			}
		}

		function d(e, t) {
			e = a(e);
			var i, s, r, n = y.rtl ? -1 : 1;
			i = e.attr("data-swiper-parallax") || "0", s = e.attr("data-swiper-parallax-x"), r = e.attr("data-swiper-parallax-y"), s || r ? (s = s || "0", r = r || "0") : y.isHorizontal() ? (s = i, r = "0") : (r = i, s = "0"), s = s.indexOf("%") >= 0 ? parseInt(s, 10) * t * n + "%" : s * t * n + "px", r = r.indexOf("%") >= 0 ? parseInt(r, 10) * t + "%" : r * t + "px", e.transform("translate3d(" + s + ", " + r + ",0px)")
		}

		function c(e) {
			return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e), e
		}
		if (!(this instanceof t)) return new t(e, i);
		var u = {
				direction: "horizontal",
				touchEventsTarget: "container",
				initialSlide: 0,
				speed: 300,
				autoplay: !1,
				autoplayDisableOnInteraction: !0,
				autoplayStopOnLast: !1,
				iOSEdgeSwipeDetection: !1,
				iOSEdgeSwipeThreshold: 20,
				freeMode: !1,
				freeModeMomentum: !0,
				freeModeMomentumRatio: 1,
				freeModeMomentumBounce: !0,
				freeModeMomentumBounceRatio: 1,
				freeModeSticky: !1,
				freeModeMinimumVelocity: .02,
				autoHeight: !1,
				setWrapperSize: !1,
				virtualTranslate: !1,
				effect: "slide",
				coverflow: {
					rotate: 50,
					stretch: 0,
					depth: 100,
					modifier: 1,
					slideShadows: !0
				},
				flip: {
					slideShadows: !0,
					limitRotation: !0
				},
				cube: {
					slideShadows: !0,
					shadow: !0,
					shadowOffset: 20,
					shadowScale: .94
				},
				fade: {
					crossFade: !1
				},
				parallax: !1,
				scrollbar: null,
				scrollbarHide: !0,
				scrollbarDraggable: !1,
				scrollbarSnapOnRelease: !1,
				keyboardControl: !1,
				mousewheelControl: !1,
				mousewheelReleaseOnEdges: !1,
				mousewheelInvert: !1,
				mousewheelForceToAxis: !1,
				mousewheelSensitivity: 1,
				hashnav: !1,
				breakpoints: void 0,
				spaceBetween: 0,
				slidesPerView: 1,
				slidesPerColumn: 1,
				slidesPerColumnFill: "column",
				slidesPerGroup: 1,
				centeredSlides: !1,
				slidesOffsetBefore: 0,
				slidesOffsetAfter: 0,
				roundLengths: !1,
				touchRatio: 1,
				touchAngle: 45,
				simulateTouch: !0,
				shortSwipes: !0,
				longSwipes: !0,
				longSwipesRatio: .5,
				longSwipesMs: 300,
				followFinger: !0,
				onlyExternal: !1,
				threshold: 0,
				touchMoveStopPropagation: !0,
				uniqueNavElements: !0,
				pagination: null,
				paginationElement: "span",
				paginationClickable: !1,
				paginationHide: !1,
				paginationBulletRender: null,
				paginationProgressRender: null,
				paginationFractionRender: null,
				paginationCustomRender: null,
				paginationType: "bullets",
				resistance: !0,
				resistanceRatio: .85,
				nextButton: null,
				prevButton: null,
				watchSlidesProgress: !1,
				watchSlidesVisibility: !1,
				grabCursor: !1,
				preventClicks: !0,
				preventClicksPropagation: !0,
				slideToClickedSlide: !1,
				lazyLoading: !1,
				lazyLoadingInPrevNext: !1,
				lazyLoadingInPrevNextAmount: 1,
				lazyLoadingOnTransitionStart: !1,
				preloadImages: !0,
				updateOnImagesReady: !0,
				loop: !1,
				loopAdditionalSlides: 0,
				loopedSlides: null,
				control: void 0,
				controlInverse: !1,
				controlBy: "slide",
				allowSwipeToPrev: !0,
				allowSwipeToNext: !0,
				swipeHandler: null,
				noSwiping: !0,
				noSwipingClass: "swiper-no-swiping",
				slideClass: "swiper-slide",
				slideActiveClass: "swiper-slide-active",
				slideVisibleClass: "swiper-slide-visible",
				slideDuplicateClass: "swiper-slide-duplicate",
				slideNextClass: "swiper-slide-next",
				slidePrevClass: "swiper-slide-prev",
				wrapperClass: "swiper-wrapper",
				bulletClass: "swiper-pagination-bullet",
				bulletActiveClass: "swiper-pagination-bullet-active",
				buttonDisabledClass: "swiper-button-disabled",
				paginationCurrentClass: "swiper-pagination-current",
				paginationTotalClass: "swiper-pagination-total",
				paginationHiddenClass: "swiper-pagination-hidden",
				paginationProgressbarClass: "swiper-pagination-progressbar",
				observer: !1,
				observeParents: !1,
				a11y: !1,
				prevSlideMessage: "Previous slide",
				nextSlideMessage: "Next slide",
				firstSlideMessage: "This is the first slide",
				lastSlideMessage: "This is the last slide",
				paginationBulletMessage: "Go to slide {{index}}",
				runCallbacksOnInit: !0
			},
			m = i && i.virtualTranslate;
		i = i || {};
		var h = {};
		for (var f in i)
			if ("object" != typeof i[f] || null === i[f] || (i[f].nodeType || i[f] === window || i[f] === document || "undefined" != typeof Dom7 && i[f] instanceof Dom7 || "undefined" != typeof jQuery && i[f] instanceof jQuery)) h[f] = i[f];
			else {
				h[f] = {};
				for (var g in i[f]) h[f][g] = i[f][g]
			}
		for (var v in u)
			if ("undefined" == typeof i[v]) i[v] = u[v];
			else if ("object" == typeof i[v])
			for (var w in u[v]) "undefined" == typeof i[v][w] && (i[v][w] = u[v][w]);
		var y = this;
		if (y.params = i, y.originalParams = h, y.classNames = [], "undefined" != typeof a && "undefined" != typeof Dom7 && (a = Dom7), ("undefined" != typeof a || (a = "undefined" == typeof Dom7 ? window.Dom7 || window.Zepto || window.jQuery : Dom7)) && (y.$ = a, y.currentBreakpoint = void 0, y.getActiveBreakpoint = function() {
				if (!y.params.breakpoints) return !1;
				var e, a = !1,
					t = [];
				for (e in y.params.breakpoints) y.params.breakpoints.hasOwnProperty(e) && t.push(e);
				t.sort(function(e, a) {
					return parseInt(e, 10) > parseInt(a, 10)
				});
				for (var i = 0; i < t.length; i++) e = t[i], e >= window.innerWidth && !a && (a = e);
				return a || "max"
			}, y.setBreakpoint = function() {
				var e = y.getActiveBreakpoint();
				if (e && y.currentBreakpoint !== e) {
					var a = e in y.params.breakpoints ? y.params.breakpoints[e] : y.originalParams,
						t = y.params.loop && a.slidesPerView !== y.params.slidesPerView;
					for (var i in a) y.params[i] = a[i];
					y.currentBreakpoint = e, t && y.destroyLoop && y.reLoop(!0)
				}
			}, y.params.breakpoints && y.setBreakpoint(), y.container = a(e), 0 !== y.container.length)) {
			if (y.container.length > 1) {
				var x = [];
				return y.container.each(function() {
					x.push(new t(this, i))
				}), x
			}
			y.container[0].swiper = y, y.container.data("swiper", y), y.classNames.push("swiper-container-" + y.params.direction), y.params.freeMode && y.classNames.push("swiper-container-free-mode"), y.support.flexbox || (y.classNames.push("swiper-container-no-flexbox"), y.params.slidesPerColumn = 1), y.params.autoHeight && y.classNames.push("swiper-container-autoheight"), (y.params.parallax || y.params.watchSlidesVisibility) && (y.params.watchSlidesProgress = !0), ["cube", "coverflow", "flip"].indexOf(y.params.effect) >= 0 && (y.support.transforms3d ? (y.params.watchSlidesProgress = !0, y.classNames.push("swiper-container-3d")) : y.params.effect = "slide"), "slide" !== y.params.effect && y.classNames.push("swiper-container-" + y.params.effect), "cube" === y.params.effect && (y.params.resistanceRatio = 0, y.params.slidesPerView = 1, y.params.slidesPerColumn = 1, y.params.slidesPerGroup = 1, y.params.centeredSlides = !1, y.params.spaceBetween = 0, y.params.virtualTranslate = !0, y.params.setWrapperSize = !1), "fade" !== y.params.effect && "flip" !== y.params.effect || (y.params.slidesPerView = 1, y.params.slidesPerColumn = 1, y.params.slidesPerGroup = 1, y.params.watchSlidesProgress = !0, y.params.spaceBetween = 0, y.params.setWrapperSize = !1, "undefined" == typeof m && (y.params.virtualTranslate = !0)), y.params.grabCursor && y.support.touch && (y.params.grabCursor = !1), y.wrapper = y.container.children("." + y.params.wrapperClass), y.params.pagination && (y.paginationContainer = a(y.params.pagination), y.params.uniqueNavElements && "string" == typeof y.params.pagination && y.paginationContainer.length > 1 && 1 === y.container.find(y.params.pagination).length && (y.paginationContainer = y.container.find(y.params.pagination)), "bullets" === y.params.paginationType && y.params.paginationClickable ? y.paginationContainer.addClass("swiper-pagination-clickable") : y.params.paginationClickable = !1, y.paginationContainer.addClass("swiper-pagination-" + y.params.paginationType)), (y.params.nextButton || y.params.prevButton) && (y.params.nextButton && (y.nextButton = a(y.params.nextButton), y.params.uniqueNavElements && "string" == typeof y.params.nextButton && y.nextButton.length > 1 && 1 === y.container.find(y.params.nextButton).length && (y.nextButton = y.container.find(y.params.nextButton))), y.params.prevButton && (y.prevButton = a(y.params.prevButton), y.params.uniqueNavElements && "string" == typeof y.params.prevButton && y.prevButton.length > 1 && 1 === y.container.find(y.params.prevButton).length && (y.prevButton = y.container.find(y.params.prevButton)))), y.isHorizontal = function() {
				return "horizontal" === y.params.direction
			}, y.rtl = y.isHorizontal() && ("rtl" === y.container[0].dir.toLowerCase() || "rtl" === y.container.css("direction")), y.rtl && y.classNames.push("swiper-container-rtl"), y.rtl && (y.wrongRTL = "-webkit-box" === y.wrapper.css("display")), y.params.slidesPerColumn > 1 && y.classNames.push("swiper-container-multirow"), y.device.android && y.classNames.push("swiper-container-android"), y.container.addClass(y.classNames.join(" ")), y.translate = 0, y.progress = 0, y.velocity = 0, y.lockSwipeToNext = function() {
				y.params.allowSwipeToNext = !1
			}, y.lockSwipeToPrev = function() {
				y.params.allowSwipeToPrev = !1
			}, y.lockSwipes = function() {
				y.params.allowSwipeToNext = y.params.allowSwipeToPrev = !1
			}, y.unlockSwipeToNext = function() {
				y.params.allowSwipeToNext = !0
			}, y.unlockSwipeToPrev = function() {
				y.params.allowSwipeToPrev = !0
			}, y.unlockSwipes = function() {
				y.params.allowSwipeToNext = y.params.allowSwipeToPrev = !0
			}, y.params.grabCursor && (y.container[0].style.cursor = "move", y.container[0].style.cursor = "-webkit-grab", y.container[0].style.cursor = "-moz-grab", y.container[0].style.cursor = "grab"), y.imagesToLoad = [], y.imagesLoaded = 0, y.loadImage = function(e, a, t, i, s) {
				function r() {
					s && s()
				}
				var n;
				e.complete && i ? r() : a ? (n = new window.Image, n.onload = r, n.onerror = r, t && (n.srcset = t), a && (n.src = a)) : r()
			}, y.preloadImages = function() {
				function e() {
					"undefined" != typeof y && null !== y && (void 0 !== y.imagesLoaded && y.imagesLoaded++, y.imagesLoaded === y.imagesToLoad.length && (y.params.updateOnImagesReady && y.update(), y.emit("onImagesReady", y)))
				}
				y.imagesToLoad = y.container.find("img");
				for (var a = 0; a < y.imagesToLoad.length; a++) y.loadImage(y.imagesToLoad[a], y.imagesToLoad[a].currentSrc || y.imagesToLoad[a].getAttribute("src"), y.imagesToLoad[a].srcset || y.imagesToLoad[a].getAttribute("srcset"), !0, e)
			}, y.autoplayTimeoutId = void 0, y.autoplaying = !1, y.autoplayPaused = !1, y.startAutoplay = function() {
				return "undefined" != typeof y.autoplayTimeoutId ? !1 : y.params.autoplay ? y.autoplaying ? !1 : (y.autoplaying = !0, y.emit("onAutoplayStart", y), void r()) : !1
			}, y.stopAutoplay = function(e) {
				y.autoplayTimeoutId && (y.autoplayTimeoutId && clearTimeout(y.autoplayTimeoutId), y.autoplaying = !1, y.autoplayTimeoutId = void 0, y.emit("onAutoplayStop", y))
			}, y.pauseAutoplay = function(e) {
				y.autoplayPaused || (y.autoplayTimeoutId && clearTimeout(y.autoplayTimeoutId), y.autoplayPaused = !0, 0 === e ? (y.autoplayPaused = !1, r()) : y.wrapper.transitionEnd(function() {
					y && (y.autoplayPaused = !1, y.autoplaying ? r() : y.stopAutoplay())
				}))
			}, y.minTranslate = function() {
				return -y.snapGrid[0]
			}, y.maxTranslate = function() {
				return -y.snapGrid[y.snapGrid.length - 1]
			}, y.updateAutoHeight = function() {
				var e = y.slides.eq(y.activeIndex)[0];
				if ("undefined" != typeof e) {
					var a = e.offsetHeight;
					a && y.wrapper.css("height", a + "px")
				}
			}, y.updateContainerSize = function() {
				var e, a;
				e = "undefined" != typeof y.params.width ? y.params.width : y.container[0].clientWidth, a = "undefined" != typeof y.params.height ? y.params.height : y.container[0].clientHeight, 0 === e && y.isHorizontal() || 0 === a && !y.isHorizontal() || (e = e - parseInt(y.container.css("padding-left"), 10) - parseInt(y.container.css("padding-right"), 10), a = a - parseInt(y.container.css("padding-top"), 10) - parseInt(y.container.css("padding-bottom"), 10), y.width = e, y.height = a, y.size = y.isHorizontal() ? y.width : y.height)
			}, y.updateSlidesSize = function() {
				y.slides = y.wrapper.children("." + y.params.slideClass), y.snapGrid = [], y.slidesGrid = [], y.slidesSizesGrid = [];
				var e, a = y.params.spaceBetween,
					t = -y.params.slidesOffsetBefore,
					i = 0,
					r = 0;
				if ("undefined" != typeof y.size) {
					"string" == typeof a && a.indexOf("%") >= 0 && (a = parseFloat(a.replace("%", "")) / 100 * y.size), y.virtualSize = -a, y.rtl ? y.slides.css({
						marginLeft: "",
						marginTop: ""
					}) : y.slides.css({
						marginRight: "",
						marginBottom: ""
					});
					var n;
					y.params.slidesPerColumn > 1 && (n = Math.floor(y.slides.length / y.params.slidesPerColumn) === y.slides.length / y.params.slidesPerColumn ? y.slides.length : Math.ceil(y.slides.length / y.params.slidesPerColumn) * y.params.slidesPerColumn, "auto" !== y.params.slidesPerView && "row" === y.params.slidesPerColumnFill && (n = Math.max(n, y.params.slidesPerView * y.params.slidesPerColumn)));
					var o, l = y.params.slidesPerColumn,
						p = n / l,
						d = p - (y.params.slidesPerColumn * p - y.slides.length);
					for (e = 0; e < y.slides.length; e++) {
						o = 0;
						var c = y.slides.eq(e);
						if (y.params.slidesPerColumn > 1) {
							var u, m, h;
							"column" === y.params.slidesPerColumnFill ? (m = Math.floor(e / l), h = e - m * l, (m > d || m === d && h === l - 1) && ++h >= l && (h = 0, m++), u = m + h * n / l, c.css({
								"-webkit-box-ordinal-group": u,
								"-moz-box-ordinal-group": u,
								"-ms-flex-order": u,
								"-webkit-order": u,
								order: u
							})) : (h = Math.floor(e / p), m = e - h * p), c.css({
								"margin-top": 0 !== h && y.params.spaceBetween && y.params.spaceBetween + "px"
							}).attr("data-swiper-column", m).attr("data-swiper-row", h)
						}
						"none" !== c.css("display") && ("auto" === y.params.slidesPerView ? (o = y.isHorizontal() ? c.outerWidth(!0) : c.outerHeight(!0), y.params.roundLengths && (o = s(o))) : (o = (y.size - (y.params.slidesPerView - 1) * a) / y.params.slidesPerView, y.params.roundLengths && (o = s(o)), y.isHorizontal() ? y.slides[e].style.width = o + "px" : y.slides[e].style.height = o + "px"), y.slides[e].swiperSlideSize = o, y.slidesSizesGrid.push(o), y.params.centeredSlides ? (t = t + o / 2 + i / 2 + a, 0 === e && (t = t - y.size / 2 - a), Math.abs(t) < .001 && (t = 0), r % y.params.slidesPerGroup === 0 && y.snapGrid.push(t), y.slidesGrid.push(t)) : (r % y.params.slidesPerGroup === 0 && y.snapGrid.push(t), y.slidesGrid.push(t), t = t + o + a), y.virtualSize += o + a, i = o, r++)
					}
					y.virtualSize = Math.max(y.virtualSize, y.size) + y.params.slidesOffsetAfter;
					var f;
					if (y.rtl && y.wrongRTL && ("slide" === y.params.effect || "coverflow" === y.params.effect) && y.wrapper.css({
							width: y.virtualSize + y.params.spaceBetween + "px"
						}), y.support.flexbox && !y.params.setWrapperSize || (y.isHorizontal() ? y.wrapper.css({
							width: y.virtualSize + y.params.spaceBetween + "px"
						}) : y.wrapper.css({
							height: y.virtualSize + y.params.spaceBetween + "px"
						})), y.params.slidesPerColumn > 1 && (y.virtualSize = (o + y.params.spaceBetween) * n, y.virtualSize = Math.ceil(y.virtualSize / y.params.slidesPerColumn) - y.params.spaceBetween, y.wrapper.css({
							width: y.virtualSize + y.params.spaceBetween + "px"
						}), y.params.centeredSlides)) {
						for (f = [], e = 0; e < y.snapGrid.length; e++) y.snapGrid[e] < y.virtualSize + y.snapGrid[0] && f.push(y.snapGrid[e]);
						y.snapGrid = f
					}
					if (!y.params.centeredSlides) {
						for (f = [], e = 0; e < y.snapGrid.length; e++) y.snapGrid[e] <= y.virtualSize - y.size && f.push(y.snapGrid[e]);
						y.snapGrid = f, Math.floor(y.virtualSize - y.size) - Math.floor(y.snapGrid[y.snapGrid.length - 1]) > 1 && y.snapGrid.push(y.virtualSize - y.size)
					}
					0 === y.snapGrid.length && (y.snapGrid = [0]), 0 !== y.params.spaceBetween && (y.isHorizontal() ? y.rtl ? y.slides.css({
						marginLeft: a + "px"
					}) : y.slides.css({
						marginRight: a + "px"
					}) : y.slides.css({
						marginBottom: a + "px"
					})), y.params.watchSlidesProgress && y.updateSlidesOffset()
				}
			}, y.updateSlidesOffset = function() {
				for (var e = 0; e < y.slides.length; e++) y.slides[e].swiperSlideOffset = y.isHorizontal() ? y.slides[e].offsetLeft : y.slides[e].offsetTop
			}, y.updateSlidesProgress = function(e) {
				if ("undefined" == typeof e && (e = y.translate || 0), 0 !== y.slides.length) {
					"undefined" == typeof y.slides[0].swiperSlideOffset && y.updateSlidesOffset();
					var a = -e;
					y.rtl && (a = e), y.slides.removeClass(y.params.slideVisibleClass);
					for (var t = 0; t < y.slides.length; t++) {
						var i = y.slides[t],
							s = (a - i.swiperSlideOffset) / (i.swiperSlideSize + y.params.spaceBetween);
						if (y.params.watchSlidesVisibility) {
							var r = -(a - i.swiperSlideOffset),
								n = r + y.slidesSizesGrid[t],
								o = r >= 0 && r < y.size || n > 0 && n <= y.size || 0 >= r && n >= y.size;
							o && y.slides.eq(t).addClass(y.params.slideVisibleClass)
						}
						i.progress = y.rtl ? -s : s
					}
				}
			}, y.updateProgress = function(e) {
				"undefined" == typeof e && (e = y.translate || 0);
				var a = y.maxTranslate() - y.minTranslate(),
					t = y.isBeginning,
					i = y.isEnd;
				0 === a ? (y.progress = 0, y.isBeginning = y.isEnd = !0) : (y.progress = (e - y.minTranslate()) / a, y.isBeginning = y.progress <= 0, y.isEnd = y.progress >= 1), y.isBeginning && !t && y.emit("onReachBeginning", y), y.isEnd && !i && y.emit("onReachEnd", y), y.params.watchSlidesProgress && y.updateSlidesProgress(e), y.emit("onProgress", y, y.progress)
			}, y.updateActiveIndex = function() {
				var e, a, t, i = y.rtl ? y.translate : -y.translate;
				for (a = 0; a < y.slidesGrid.length; a++) "undefined" != typeof y.slidesGrid[a + 1] ? i >= y.slidesGrid[a] && i < y.slidesGrid[a + 1] - (y.slidesGrid[a + 1] - y.slidesGrid[a]) / 2 ? e = a : i >= y.slidesGrid[a] && i < y.slidesGrid[a + 1] && (e = a + 1) : i >= y.slidesGrid[a] && (e = a);
				(0 > e || "undefined" == typeof e) && (e = 0), t = Math.floor(e / y.params.slidesPerGroup), t >= y.snapGrid.length && (t = y.snapGrid.length - 1), e !== y.activeIndex && (y.snapIndex = t, y.previousIndex = y.activeIndex, y.activeIndex = e, y.updateClasses())
			}, y.updateClasses = function() {
				y.slides.removeClass(y.params.slideActiveClass + " " + y.params.slideNextClass + " " + y.params.slidePrevClass);
				var e = y.slides.eq(y.activeIndex);
				e.addClass(y.params.slideActiveClass);
				var t = e.next("." + y.params.slideClass).addClass(y.params.slideNextClass);
				y.params.loop && 0 === t.length && y.slides.eq(0).addClass(y.params.slideNextClass);
				var i = e.prev("." + y.params.slideClass).addClass(y.params.slidePrevClass);
				if (y.params.loop && 0 === i.length && y.slides.eq(-1).addClass(y.params.slidePrevClass), y.paginationContainer && y.paginationContainer.length > 0) {
					var s, r = y.params.loop ? Math.ceil((y.slides.length - 2 * y.loopedSlides) / y.params.slidesPerGroup) : y.snapGrid.length;
					if (y.params.loop ? (s = Math.ceil((y.activeIndex - y.loopedSlides) / y.params.slidesPerGroup), s > y.slides.length - 1 - 2 * y.loopedSlides && (s -= y.slides.length - 2 * y.loopedSlides), s > r - 1 && (s -= r), 0 > s && "bullets" !== y.params.paginationType && (s = r + s)) : s = "undefined" != typeof y.snapIndex ? y.snapIndex : y.activeIndex || 0, "bullets" === y.params.paginationType && y.bullets && y.bullets.length > 0 && (y.bullets.removeClass(y.params.bulletActiveClass), y.paginationContainer.length > 1 ? y.bullets.each(function() {
							a(this).index() === s && a(this).addClass(y.params.bulletActiveClass)
						}) : y.bullets.eq(s).addClass(y.params.bulletActiveClass)), "fraction" === y.params.paginationType && (y.paginationContainer.find("." + y.params.paginationCurrentClass).text(s + 1), y.paginationContainer.find("." + y.params.paginationTotalClass).text(r)), "progress" === y.params.paginationType) {
						var n = (s + 1) / r,
							o = n,
							l = 1;
						y.isHorizontal() || (l = n, o = 1), y.paginationContainer.find("." + y.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + o + ") scaleY(" + l + ")").transition(y.params.speed)
					}
					"custom" === y.params.paginationType && y.params.paginationCustomRender && (y.paginationContainer.html(y.params.paginationCustomRender(y, s + 1, r)), y.emit("onPaginationRendered", y, y.paginationContainer[0]))
				}
				y.params.loop || (y.params.prevButton && y.prevButton && y.prevButton.length > 0 && (y.isBeginning ? (y.prevButton.addClass(y.params.buttonDisabledClass), y.params.a11y && y.a11y && y.a11y.disable(y.prevButton)) : (y.prevButton.removeClass(y.params.buttonDisabledClass), y.params.a11y && y.a11y && y.a11y.enable(y.prevButton))), y.params.nextButton && y.nextButton && y.nextButton.length > 0 && (y.isEnd ? (y.nextButton.addClass(y.params.buttonDisabledClass), y.params.a11y && y.a11y && y.a11y.disable(y.nextButton)) : (y.nextButton.removeClass(y.params.buttonDisabledClass), y.params.a11y && y.a11y && y.a11y.enable(y.nextButton))))
			}, y.updatePagination = function() {
				if (y.params.pagination && y.paginationContainer && y.paginationContainer.length > 0) {
					var e = "";
					if ("bullets" === y.params.paginationType) {
						for (var a = y.params.loop ? Math.ceil((y.slides.length - 2 * y.loopedSlides) / y.params.slidesPerGroup) : y.snapGrid.length, t = 0; a > t; t++) e += y.params.paginationBulletRender ? y.params.paginationBulletRender(t, y.params.bulletClass) : "<" + y.params.paginationElement + ' class="' + y.params.bulletClass + '"></' + y.params.paginationElement + ">";
						y.paginationContainer.html(e), y.bullets = y.paginationContainer.find("." + y.params.bulletClass), y.params.paginationClickable && y.params.a11y && y.a11y && y.a11y.initPagination()
					}
					"fraction" === y.params.paginationType && (e = y.params.paginationFractionRender ? y.params.paginationFractionRender(y, y.params.paginationCurrentClass, y.params.paginationTotalClass) : '<span class="' + y.params.paginationCurrentClass + '"></span> / <span class="' + y.params.paginationTotalClass + '"></span>', y.paginationContainer.html(e)), "progress" === y.params.paginationType && (e = y.params.paginationProgressRender ? y.params.paginationProgressRender(y, y.params.paginationProgressbarClass) : '<span class="' + y.params.paginationProgressbarClass + '"></span>', y.paginationContainer.html(e)), "custom" !== y.params.paginationType && y.emit("onPaginationRendered", y, y.paginationContainer[0])
				}
			}, y.update = function(e) {
				function a() {
					i = Math.min(Math.max(y.translate, y.maxTranslate()), y.minTranslate()), y.setWrapperTranslate(i), y.updateActiveIndex(), y.updateClasses()
				}
				if (y.updateContainerSize(), y.updateSlidesSize(), y.updateProgress(), y.updatePagination(), y.updateClasses(), y.params.scrollbar && y.scrollbar && y.scrollbar.set(), e) {
					var t, i;
					y.controller && y.controller.spline && (y.controller.spline = void 0), y.params.freeMode ? (a(), y.params.autoHeight && y.updateAutoHeight()) : (t = ("auto" === y.params.slidesPerView || y.params.slidesPerView > 1) && y.isEnd && !y.params.centeredSlides ? y.slideTo(y.slides.length - 1, 0, !1, !0) : y.slideTo(y.activeIndex, 0, !1, !0), t || a())
				} else y.params.autoHeight && y.updateAutoHeight()
			}, y.onResize = function(e) {
				y.params.breakpoints && y.setBreakpoint();
				var a = y.params.allowSwipeToPrev,
					t = y.params.allowSwipeToNext;
				y.params.allowSwipeToPrev = y.params.allowSwipeToNext = !0, y.updateContainerSize(), y.updateSlidesSize(), ("auto" === y.params.slidesPerView || y.params.freeMode || e) && y.updatePagination(), y.params.scrollbar && y.scrollbar && y.scrollbar.set(), y.controller && y.controller.spline && (y.controller.spline = void 0);
				var i = !1;
				if (y.params.freeMode) {
					var s = Math.min(Math.max(y.translate, y.maxTranslate()), y.minTranslate());
					y.setWrapperTranslate(s), y.updateActiveIndex(), y.updateClasses(), y.params.autoHeight && y.updateAutoHeight()
				} else y.updateClasses(), i = ("auto" === y.params.slidesPerView || y.params.slidesPerView > 1) && y.isEnd && !y.params.centeredSlides ? y.slideTo(y.slides.length - 1, 0, !1, !0) : y.slideTo(y.activeIndex, 0, !1, !0);
				y.params.lazyLoading && !i && y.lazy && y.lazy.load(), y.params.allowSwipeToPrev = a, y.params.allowSwipeToNext = t
			};
			var T = ["mousedown", "mousemove", "mouseup"];
			window.navigator.pointerEnabled ? T = ["pointerdown", "pointermove", "pointerup"] : window.navigator.msPointerEnabled && (T = ["MSPointerDown", "MSPointerMove", "MSPointerUp"]), y.touchEvents = {
				start: y.support.touch || !y.params.simulateTouch ? "touchstart" : T[0],
				move: y.support.touch || !y.params.simulateTouch ? "touchmove" : T[1],
				end: y.support.touch || !y.params.simulateTouch ? "touchend" : T[2]
			}, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === y.params.touchEventsTarget ? y.container : y.wrapper).addClass("swiper-wp8-" + y.params.direction), y.initEvents = function(e) {
				var a = e ? "off" : "on",
					t = e ? "removeEventListener" : "addEventListener",
					s = "container" === y.params.touchEventsTarget ? y.container[0] : y.wrapper[0],
					r = y.support.touch ? s : document,
					n = !!y.params.nested;
				y.browser.ie ? (s[t](y.touchEvents.start, y.onTouchStart, !1), r[t](y.touchEvents.move, y.onTouchMove, n), r[t](y.touchEvents.end, y.onTouchEnd, !1)) : (y.support.touch && (s[t](y.touchEvents.start, y.onTouchStart, !1), s[t](y.touchEvents.move, y.onTouchMove, n), s[t](y.touchEvents.end, y.onTouchEnd, !1)), !i.simulateTouch || y.device.ios || y.device.android || (s[t]("mousedown", y.onTouchStart, !1), document[t]("mousemove", y.onTouchMove, n), document[t]("mouseup", y.onTouchEnd, !1))), window[t]("resize", y.onResize), y.params.nextButton && y.nextButton && y.nextButton.length > 0 && (y.nextButton[a]("click", y.onClickNext), y.params.a11y && y.a11y && y.nextButton[a]("keydown", y.a11y.onEnterKey)), y.params.prevButton && y.prevButton && y.prevButton.length > 0 && (y.prevButton[a]("click", y.onClickPrev), y.params.a11y && y.a11y && y.prevButton[a]("keydown", y.a11y.onEnterKey)), y.params.pagination && y.params.paginationClickable && (y.paginationContainer[a]("click", "." + y.params.bulletClass, y.onClickIndex), y.params.a11y && y.a11y && y.paginationContainer[a]("keydown", "." + y.params.bulletClass, y.a11y.onEnterKey)), (y.params.preventClicks || y.params.preventClicksPropagation) && s[t]("click", y.preventClicks, !0)
			}, y.attachEvents = function() {
				y.initEvents()
			}, y.detachEvents = function() {
				y.initEvents(!0)
			}, y.allowClick = !0, y.preventClicks = function(e) {
				y.allowClick || (y.params.preventClicks && e.preventDefault(), y.params.preventClicksPropagation && y.animating && (e.stopPropagation(), e.stopImmediatePropagation()))
			}, y.onClickNext = function(e) {
				e.preventDefault(), y.isEnd && !y.params.loop || y.slideNext()
			}, y.onClickPrev = function(e) {
				e.preventDefault(), y.isBeginning && !y.params.loop || y.slidePrev()
			}, y.onClickIndex = function(e) {
				e.preventDefault();
				var t = a(this).index() * y.params.slidesPerGroup;
				y.params.loop && (t += y.loopedSlides), y.slideTo(t)
			}, y.updateClickedSlide = function(e) {
				var t = n(e, "." + y.params.slideClass),
					i = !1;
				if (t)
					for (var s = 0; s < y.slides.length; s++) y.slides[s] === t && (i = !0);
				if (!t || !i) return y.clickedSlide = void 0, void(y.clickedIndex = void 0);
				if (y.clickedSlide = t, y.clickedIndex = a(t).index(), y.params.slideToClickedSlide && void 0 !== y.clickedIndex && y.clickedIndex !== y.activeIndex) {
					var r, o = y.clickedIndex;
					if (y.params.loop) {
						if (y.animating) return;
						r = a(y.clickedSlide).attr("data-swiper-slide-index"), y.params.centeredSlides ? o < y.loopedSlides - y.params.slidesPerView / 2 || o > y.slides.length - y.loopedSlides + y.params.slidesPerView / 2 ? (y.fixLoop(), o = y.wrapper.children("." + y.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.swiper-slide-duplicate)').eq(0).index(), setTimeout(function() {
							y.slideTo(o)
						}, 0)) : y.slideTo(o) : o > y.slides.length - y.params.slidesPerView ? (y.fixLoop(), o = y.wrapper.children("." + y.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.swiper-slide-duplicate)').eq(0).index(), setTimeout(function() {
							y.slideTo(o)
						}, 0)) : y.slideTo(o)
					} else y.slideTo(o)
				}
			};
			var b, S, C, z, M, P, I, k, E, D, B = "input, select, textarea, button",
				L = Date.now(),
				H = [];
			y.animating = !1, y.touches = {
				startX: 0,
				startY: 0,
				currentX: 0,
				currentY: 0,
				diff: 0
			};
			var G, A;
			if (y.onTouchStart = function(e) {
					if (e.originalEvent && (e = e.originalEvent), G = "touchstart" === e.type, G || !("which" in e) || 3 !== e.which) {
						if (y.params.noSwiping && n(e, "." + y.params.noSwipingClass)) return void(y.allowClick = !0);
						if (!y.params.swipeHandler || n(e, y.params.swipeHandler)) {
							var t = y.touches.currentX = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX,
								i = y.touches.currentY = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY;
							if (!(y.device.ios && y.params.iOSEdgeSwipeDetection && t <= y.params.iOSEdgeSwipeThreshold)) {
								if (b = !0, S = !1, C = !0, M = void 0, A = void 0, y.touches.startX = t, y.touches.startY = i, z = Date.now(), y.allowClick = !0, y.updateContainerSize(), y.swipeDirection = void 0, y.params.threshold > 0 && (k = !1), "touchstart" !== e.type) {
									var s = !0;
									a(e.target).is(B) && (s = !1), document.activeElement && a(document.activeElement).is(B) && document.activeElement.blur(), s && e.preventDefault()
								}
								y.emit("onTouchStart", y, e)
							}
						}
					}
				}, y.onTouchMove = function(e) {
					if (e.originalEvent && (e = e.originalEvent), !G || "mousemove" !== e.type) {
						if (e.preventedByNestedSwiper) return y.touches.startX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, void(y.touches.startY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY);
						if (y.params.onlyExternal) return y.allowClick = !1, void(b && (y.touches.startX = y.touches.currentX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, y.touches.startY = y.touches.currentY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, z = Date.now()));
						if (G && document.activeElement && e.target === document.activeElement && a(e.target).is(B)) return S = !0, void(y.allowClick = !1);
						if (C && y.emit("onTouchMove", y, e), !(e.targetTouches && e.targetTouches.length > 1)) {
							if (y.touches.currentX = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, y.touches.currentY = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, "undefined" == typeof M) {
								var t = 180 * Math.atan2(Math.abs(y.touches.currentY - y.touches.startY), Math.abs(y.touches.currentX - y.touches.startX)) / Math.PI;
								M = y.isHorizontal() ? t > y.params.touchAngle : 90 - t > y.params.touchAngle
							}
							if (M && y.emit("onTouchMoveOpposite", y, e), "undefined" == typeof A && y.browser.ieTouch && (y.touches.currentX === y.touches.startX && y.touches.currentY === y.touches.startY || (A = !0)), b) {
								if (M) return void(b = !1);
								if (A || !y.browser.ieTouch) {
									y.allowClick = !1, y.emit("onSliderMove", y, e), e.preventDefault(), y.params.touchMoveStopPropagation && !y.params.nested && e.stopPropagation(), S || (i.loop && y.fixLoop(), I = y.getWrapperTranslate(), y.setWrapperTransition(0), y.animating && y.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), y.params.autoplay && y.autoplaying && (y.params.autoplayDisableOnInteraction ? y.stopAutoplay() : y.pauseAutoplay()), D = !1, y.params.grabCursor && (y.container[0].style.cursor = "move", y.container[0].style.cursor = "-webkit-grabbing", y.container[0].style.cursor = "-moz-grabbin", y.container[0].style.cursor = "grabbing")), S = !0;
									var s = y.touches.diff = y.isHorizontal() ? y.touches.currentX - y.touches.startX : y.touches.currentY - y.touches.startY;
									s *= y.params.touchRatio, y.rtl && (s = -s), y.swipeDirection = s > 0 ? "prev" : "next", P = s + I;
									var r = !0;
									if (s > 0 && P > y.minTranslate() ? (r = !1, y.params.resistance && (P = y.minTranslate() - 1 + Math.pow(-y.minTranslate() + I + s, y.params.resistanceRatio))) : 0 > s && P < y.maxTranslate() && (r = !1, y.params.resistance && (P = y.maxTranslate() + 1 - Math.pow(y.maxTranslate() - I - s, y.params.resistanceRatio))),
										r && (e.preventedByNestedSwiper = !0), !y.params.allowSwipeToNext && "next" === y.swipeDirection && I > P && (P = I), !y.params.allowSwipeToPrev && "prev" === y.swipeDirection && P > I && (P = I), y.params.followFinger) {
										if (y.params.threshold > 0) {
											if (!(Math.abs(s) > y.params.threshold || k)) return void(P = I);
											if (!k) return k = !0, y.touches.startX = y.touches.currentX, y.touches.startY = y.touches.currentY, P = I, void(y.touches.diff = y.isHorizontal() ? y.touches.currentX - y.touches.startX : y.touches.currentY - y.touches.startY)
										}(y.params.freeMode || y.params.watchSlidesProgress) && y.updateActiveIndex(), y.params.freeMode && (0 === H.length && H.push({
											position: y.touches[y.isHorizontal() ? "startX" : "startY"],
											time: z
										}), H.push({
											position: y.touches[y.isHorizontal() ? "currentX" : "currentY"],
											time: (new window.Date).getTime()
										})), y.updateProgress(P), y.setWrapperTranslate(P)
									}
								}
							}
						}
					}
				}, y.onTouchEnd = function(e) {
					if (e.originalEvent && (e = e.originalEvent), C && y.emit("onTouchEnd", y, e), C = !1, b) {
						y.params.grabCursor && S && b && (y.container[0].style.cursor = "move", y.container[0].style.cursor = "-webkit-grab", y.container[0].style.cursor = "-moz-grab", y.container[0].style.cursor = "grab");
						var t = Date.now(),
							i = t - z;
						if (y.allowClick && (y.updateClickedSlide(e), y.emit("onTap", y, e), 300 > i && t - L > 300 && (E && clearTimeout(E), E = setTimeout(function() {
								y && (y.params.paginationHide && y.paginationContainer.length > 0 && !a(e.target).hasClass(y.params.bulletClass) && y.paginationContainer.toggleClass(y.params.paginationHiddenClass), y.emit("onClick", y, e))
							}, 300)), 300 > i && 300 > t - L && (E && clearTimeout(E), y.emit("onDoubleTap", y, e))), L = Date.now(), setTimeout(function() {
								y && (y.allowClick = !0)
							}, 0), !b || !S || !y.swipeDirection || 0 === y.touches.diff || P === I) return void(b = S = !1);
						b = S = !1;
						var s;
						if (s = y.params.followFinger ? y.rtl ? y.translate : -y.translate : -P, y.params.freeMode) {
							if (s < -y.minTranslate()) return void y.slideTo(y.activeIndex);
							if (s > -y.maxTranslate()) return void(y.slides.length < y.snapGrid.length ? y.slideTo(y.snapGrid.length - 1) : y.slideTo(y.slides.length - 1));
							if (y.params.freeModeMomentum) {
								if (H.length > 1) {
									var r = H.pop(),
										n = H.pop(),
										o = r.position - n.position,
										l = r.time - n.time;
									y.velocity = o / l, y.velocity = y.velocity / 2, Math.abs(y.velocity) < y.params.freeModeMinimumVelocity && (y.velocity = 0), (l > 150 || (new window.Date).getTime() - r.time > 300) && (y.velocity = 0)
								} else y.velocity = 0;
								H.length = 0;
								var p = 1e3 * y.params.freeModeMomentumRatio,
									d = y.velocity * p,
									c = y.translate + d;
								y.rtl && (c = -c);
								var u, m = !1,
									h = 20 * Math.abs(y.velocity) * y.params.freeModeMomentumBounceRatio;
								if (c < y.maxTranslate()) y.params.freeModeMomentumBounce ? (c + y.maxTranslate() < -h && (c = y.maxTranslate() - h), u = y.maxTranslate(), m = !0, D = !0) : c = y.maxTranslate();
								else if (c > y.minTranslate()) y.params.freeModeMomentumBounce ? (c - y.minTranslate() > h && (c = y.minTranslate() + h), u = y.minTranslate(), m = !0, D = !0) : c = y.minTranslate();
								else if (y.params.freeModeSticky) {
									var f, g = 0;
									for (g = 0; g < y.snapGrid.length; g += 1)
										if (y.snapGrid[g] > -c) {
											f = g;
											break
										}
									c = Math.abs(y.snapGrid[f] - c) < Math.abs(y.snapGrid[f - 1] - c) || "next" === y.swipeDirection ? y.snapGrid[f] : y.snapGrid[f - 1], y.rtl || (c = -c)
								}
								if (0 !== y.velocity) p = y.rtl ? Math.abs((-c - y.translate) / y.velocity) : Math.abs((c - y.translate) / y.velocity);
								else if (y.params.freeModeSticky) return void y.slideReset();
								y.params.freeModeMomentumBounce && m ? (y.updateProgress(u), y.setWrapperTransition(p), y.setWrapperTranslate(c), y.onTransitionStart(), y.animating = !0, y.wrapper.transitionEnd(function() {
									y && D && (y.emit("onMomentumBounce", y), y.setWrapperTransition(y.params.speed), y.setWrapperTranslate(u), y.wrapper.transitionEnd(function() {
										y && y.onTransitionEnd()
									}))
								})) : y.velocity ? (y.updateProgress(c), y.setWrapperTransition(p), y.setWrapperTranslate(c), y.onTransitionStart(), y.animating || (y.animating = !0, y.wrapper.transitionEnd(function() {
									y && y.onTransitionEnd()
								}))) : y.updateProgress(c), y.updateActiveIndex()
							}
							return void((!y.params.freeModeMomentum || i >= y.params.longSwipesMs) && (y.updateProgress(), y.updateActiveIndex()))
						}
						var v, w = 0,
							x = y.slidesSizesGrid[0];
						for (v = 0; v < y.slidesGrid.length; v += y.params.slidesPerGroup) "undefined" != typeof y.slidesGrid[v + y.params.slidesPerGroup] ? s >= y.slidesGrid[v] && s < y.slidesGrid[v + y.params.slidesPerGroup] && (w = v, x = y.slidesGrid[v + y.params.slidesPerGroup] - y.slidesGrid[v]) : s >= y.slidesGrid[v] && (w = v, x = y.slidesGrid[y.slidesGrid.length - 1] - y.slidesGrid[y.slidesGrid.length - 2]);
						var T = (s - y.slidesGrid[w]) / x;
						if (i > y.params.longSwipesMs) {
							if (!y.params.longSwipes) return void y.slideTo(y.activeIndex);
							"next" === y.swipeDirection && (T >= y.params.longSwipesRatio ? y.slideTo(w + y.params.slidesPerGroup) : y.slideTo(w)), "prev" === y.swipeDirection && (T > 1 - y.params.longSwipesRatio ? y.slideTo(w + y.params.slidesPerGroup) : y.slideTo(w))
						} else {
							if (!y.params.shortSwipes) return void y.slideTo(y.activeIndex);
							"next" === y.swipeDirection && y.slideTo(w + y.params.slidesPerGroup), "prev" === y.swipeDirection && y.slideTo(w)
						}
					}
				}, y._slideTo = function(e, a) {
					return y.slideTo(e, a, !0, !0)
				}, y.slideTo = function(e, a, t, i) {
					"undefined" == typeof t && (t = !0), "undefined" == typeof e && (e = 0), 0 > e && (e = 0), y.snapIndex = Math.floor(e / y.params.slidesPerGroup), y.snapIndex >= y.snapGrid.length && (y.snapIndex = y.snapGrid.length - 1);
					var s = -y.snapGrid[y.snapIndex];
					y.params.autoplay && y.autoplaying && (i || !y.params.autoplayDisableOnInteraction ? y.pauseAutoplay(a) : y.stopAutoplay()), y.updateProgress(s);
					for (var r = 0; r < y.slidesGrid.length; r++) - Math.floor(100 * s) >= Math.floor(100 * y.slidesGrid[r]) && (e = r);
					return !y.params.allowSwipeToNext && s < y.translate && s < y.minTranslate() ? !1 : !y.params.allowSwipeToPrev && s > y.translate && s > y.maxTranslate() && (y.activeIndex || 0) !== e ? !1 : ("undefined" == typeof a && (a = y.params.speed), y.previousIndex = y.activeIndex || 0, y.activeIndex = e, y.rtl && -s === y.translate || !y.rtl && s === y.translate ? (y.params.autoHeight && y.updateAutoHeight(), y.updateClasses(), "slide" !== y.params.effect && y.setWrapperTranslate(s), !1) : (y.updateClasses(), y.onTransitionStart(t), 0 === a ? (y.setWrapperTranslate(s), y.setWrapperTransition(0), y.onTransitionEnd(t)) : (y.setWrapperTranslate(s), y.setWrapperTransition(a), y.animating || (y.animating = !0, y.wrapper.transitionEnd(function() {
						y && y.onTransitionEnd(t)
					}))), !0))
				}, y.onTransitionStart = function(e) {
					"undefined" == typeof e && (e = !0), y.params.autoHeight && y.updateAutoHeight(), y.lazy && y.lazy.onTransitionStart(), e && (y.emit("onTransitionStart", y), y.activeIndex !== y.previousIndex && (y.emit("onSlideChangeStart", y), y.activeIndex > y.previousIndex ? y.emit("onSlideNextStart", y) : y.emit("onSlidePrevStart", y)))
				}, y.onTransitionEnd = function(e) {
					y.animating = !1, y.setWrapperTransition(0), "undefined" == typeof e && (e = !0), y.lazy && y.lazy.onTransitionEnd(), e && (y.emit("onTransitionEnd", y), y.activeIndex !== y.previousIndex && (y.emit("onSlideChangeEnd", y), y.activeIndex > y.previousIndex ? y.emit("onSlideNextEnd", y) : y.emit("onSlidePrevEnd", y))), y.params.hashnav && y.hashnav && y.hashnav.setHash()
				}, y.slideNext = function(e, a, t) {
					if (y.params.loop) {
						if (y.animating) return !1;
						y.fixLoop();
						y.container[0].clientLeft;
						return y.slideTo(y.activeIndex + y.params.slidesPerGroup, a, e, t)
					}
					return y.slideTo(y.activeIndex + y.params.slidesPerGroup, a, e, t)
				}, y._slideNext = function(e) {
					return y.slideNext(!0, e, !0)
				}, y.slidePrev = function(e, a, t) {
					if (y.params.loop) {
						if (y.animating) return !1;
						y.fixLoop();
						y.container[0].clientLeft;
						return y.slideTo(y.activeIndex - 1, a, e, t)
					}
					return y.slideTo(y.activeIndex - 1, a, e, t)
				}, y._slidePrev = function(e) {
					return y.slidePrev(!0, e, !0)
				}, y.slideReset = function(e, a, t) {
					return y.slideTo(y.activeIndex, a, e)
				}, y.setWrapperTransition = function(e, a) {
					y.wrapper.transition(e), "slide" !== y.params.effect && y.effects[y.params.effect] && y.effects[y.params.effect].setTransition(e), y.params.parallax && y.parallax && y.parallax.setTransition(e), y.params.scrollbar && y.scrollbar && y.scrollbar.setTransition(e), y.params.control && y.controller && y.controller.setTransition(e, a), y.emit("onSetTransition", y, e)
				}, y.setWrapperTranslate = function(e, a, t) {
					var i = 0,
						r = 0,
						n = 0;
					y.isHorizontal() ? i = y.rtl ? -e : e : r = e, y.params.roundLengths && (i = s(i), r = s(r)), y.params.virtualTranslate || (y.support.transforms3d ? y.wrapper.transform("translate3d(" + i + "px, " + r + "px, " + n + "px)") : y.wrapper.transform("translate(" + i + "px, " + r + "px)")), y.translate = y.isHorizontal() ? i : r;
					var o, l = y.maxTranslate() - y.minTranslate();
					o = 0 === l ? 0 : (e - y.minTranslate()) / l, o !== y.progress && y.updateProgress(e), a && y.updateActiveIndex(), "slide" !== y.params.effect && y.effects[y.params.effect] && y.effects[y.params.effect].setTranslate(y.translate), y.params.parallax && y.parallax && y.parallax.setTranslate(y.translate), y.params.scrollbar && y.scrollbar && y.scrollbar.setTranslate(y.translate), y.params.control && y.controller && y.controller.setTranslate(y.translate, t), y.emit("onSetTranslate", y, y.translate)
				}, y.getTranslate = function(e, a) {
					var t, i, s, r;
					return "undefined" == typeof a && (a = "x"), y.params.virtualTranslate ? y.rtl ? -y.translate : y.translate : (s = window.getComputedStyle(e, null), window.WebKitCSSMatrix ? (i = s.transform || s.webkitTransform, i.split(",").length > 6 && (i = i.split(", ").map(function(e) {
						return e.replace(",", ".")
					}).join(", ")), r = new window.WebKitCSSMatrix("none" === i ? "" : i)) : (r = s.MozTransform || s.OTransform || s.MsTransform || s.msTransform || s.transform || s.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), t = r.toString().split(",")), "x" === a && (i = window.WebKitCSSMatrix ? r.m41 : 16 === t.length ? parseFloat(t[12]) : parseFloat(t[4])), "y" === a && (i = window.WebKitCSSMatrix ? r.m42 : 16 === t.length ? parseFloat(t[13]) : parseFloat(t[5])), y.rtl && i && (i = -i), i || 0)
				}, y.getWrapperTranslate = function(e) {
					return "undefined" == typeof e && (e = y.isHorizontal() ? "x" : "y"), y.getTranslate(y.wrapper[0], e)
				}, y.observers = [], y.initObservers = function() {
					if (y.params.observeParents)
						for (var e = y.container.parents(), a = 0; a < e.length; a++) o(e[a]);
					o(y.container[0], {
						childList: !1
					}), o(y.wrapper[0], {
						attributes: !1
					})
				}, y.disconnectObservers = function() {
					for (var e = 0; e < y.observers.length; e++) y.observers[e].disconnect();
					y.observers = []
				}, y.createLoop = function() {
					y.wrapper.children("." + y.params.slideClass + "." + y.params.slideDuplicateClass).remove();
					var e = y.wrapper.children("." + y.params.slideClass);
					"auto" !== y.params.slidesPerView || y.params.loopedSlides || (y.params.loopedSlides = e.length), y.loopedSlides = parseInt(y.params.loopedSlides || y.params.slidesPerView, 10), y.loopedSlides = y.loopedSlides + y.params.loopAdditionalSlides, y.loopedSlides > e.length && (y.loopedSlides = e.length);
					var t, i = [],
						s = [];
					for (e.each(function(t, r) {
							var n = a(this);
							t < y.loopedSlides && s.push(r), t < e.length && t >= e.length - y.loopedSlides && i.push(r), n.attr("data-swiper-slide-index", t)
						}), t = 0; t < s.length; t++) y.wrapper.append(a(s[t].cloneNode(!0)).addClass(y.params.slideDuplicateClass));
					for (t = i.length - 1; t >= 0; t--) y.wrapper.prepend(a(i[t].cloneNode(!0)).addClass(y.params.slideDuplicateClass))
				}, y.destroyLoop = function() {
					y.wrapper.children("." + y.params.slideClass + "." + y.params.slideDuplicateClass).remove(), y.slides.removeAttr("data-swiper-slide-index")
				}, y.reLoop = function(e) {
					var a = y.activeIndex - y.loopedSlides;
					y.destroyLoop(), y.createLoop(), y.updateSlidesSize(), e && y.slideTo(a + y.loopedSlides, 0, !1)
				}, y.fixLoop = function() {
					var e;
					y.activeIndex < y.loopedSlides ? (e = y.slides.length - 3 * y.loopedSlides + y.activeIndex, e += y.loopedSlides, y.slideTo(e, 0, !1, !0)) : ("auto" === y.params.slidesPerView && y.activeIndex >= 2 * y.loopedSlides || y.activeIndex > y.slides.length - 2 * y.params.slidesPerView) && (e = -y.slides.length + y.activeIndex + y.loopedSlides, e += y.loopedSlides, y.slideTo(e, 0, !1, !0))
				}, y.appendSlide = function(e) {
					if (y.params.loop && y.destroyLoop(), "object" == typeof e && e.length)
						for (var a = 0; a < e.length; a++) e[a] && y.wrapper.append(e[a]);
					else y.wrapper.append(e);
					y.params.loop && y.createLoop(), y.params.observer && y.support.observer || y.update(!0)
				}, y.prependSlide = function(e) {
					y.params.loop && y.destroyLoop();
					var a = y.activeIndex + 1;
					if ("object" == typeof e && e.length) {
						for (var t = 0; t < e.length; t++) e[t] && y.wrapper.prepend(e[t]);
						a = y.activeIndex + e.length
					} else y.wrapper.prepend(e);
					y.params.loop && y.createLoop(), y.params.observer && y.support.observer || y.update(!0), y.slideTo(a, 0, !1)
				}, y.removeSlide = function(e) {
					y.params.loop && (y.destroyLoop(), y.slides = y.wrapper.children("." + y.params.slideClass));
					var a, t = y.activeIndex;
					if ("object" == typeof e && e.length) {
						for (var i = 0; i < e.length; i++) a = e[i], y.slides[a] && y.slides.eq(a).remove(), t > a && t--;
						t = Math.max(t, 0)
					} else a = e, y.slides[a] && y.slides.eq(a).remove(), t > a && t--, t = Math.max(t, 0);
					y.params.loop && y.createLoop(), y.params.observer && y.support.observer || y.update(!0), y.params.loop ? y.slideTo(t + y.loopedSlides, 0, !1) : y.slideTo(t, 0, !1)
				}, y.removeAllSlides = function() {
					for (var e = [], a = 0; a < y.slides.length; a++) e.push(a);
					y.removeSlide(e)
				}, y.effects = {
					fade: {
						setTranslate: function() {
							for (var e = 0; e < y.slides.length; e++) {
								var a = y.slides.eq(e),
									t = a[0].swiperSlideOffset,
									i = -t;
								y.params.virtualTranslate || (i -= y.translate);
								var s = 0;
								y.isHorizontal() || (s = i, i = 0);
								var r = y.params.fade.crossFade ? Math.max(1 - Math.abs(a[0].progress), 0) : 1 + Math.min(Math.max(a[0].progress, -1), 0);
								a.css({
									opacity: r
								}).transform("translate3d(" + i + "px, " + s + "px, 0px)")
							}
						},
						setTransition: function(e) {
							if (y.slides.transition(e), y.params.virtualTranslate && 0 !== e) {
								var a = !1;
								y.slides.transitionEnd(function() {
									if (!a && y) {
										a = !0, y.animating = !1;
										for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], t = 0; t < e.length; t++) y.wrapper.trigger(e[t])
									}
								})
							}
						}
					},
					flip: {
						setTranslate: function() {
							for (var e = 0; e < y.slides.length; e++) {
								var t = y.slides.eq(e),
									i = t[0].progress;
								y.params.flip.limitRotation && (i = Math.max(Math.min(t[0].progress, 1), -1));
								var s = t[0].swiperSlideOffset,
									r = -180 * i,
									n = r,
									o = 0,
									l = -s,
									p = 0;
								if (y.isHorizontal() ? y.rtl && (n = -n) : (p = l, l = 0, o = -n, n = 0), t[0].style.zIndex = -Math.abs(Math.round(i)) + y.slides.length, y.params.flip.slideShadows) {
									var d = y.isHorizontal() ? t.find(".swiper-slide-shadow-left") : t.find(".swiper-slide-shadow-top"),
										c = y.isHorizontal() ? t.find(".swiper-slide-shadow-right") : t.find(".swiper-slide-shadow-bottom");
									0 === d.length && (d = a('<div class="swiper-slide-shadow-' + (y.isHorizontal() ? "left" : "top") + '"></div>'), t.append(d)), 0 === c.length && (c = a('<div class="swiper-slide-shadow-' + (y.isHorizontal() ? "right" : "bottom") + '"></div>'), t.append(c)), d.length && (d[0].style.opacity = Math.max(-i, 0)), c.length && (c[0].style.opacity = Math.max(i, 0))
								}
								t.transform("translate3d(" + l + "px, " + p + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)")
							}
						},
						setTransition: function(e) {
							if (y.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), y.params.virtualTranslate && 0 !== e) {
								var t = !1;
								y.slides.eq(y.activeIndex).transitionEnd(function() {
									if (!t && y && a(this).hasClass(y.params.slideActiveClass)) {
										t = !0, y.animating = !1;
										for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = 0; i < e.length; i++) y.wrapper.trigger(e[i])
									}
								})
							}
						}
					},
					cube: {
						setTranslate: function() {
							var e, t = 0;
							y.params.cube.shadow && (y.isHorizontal() ? (e = y.wrapper.find(".swiper-cube-shadow"), 0 === e.length && (e = a('<div class="swiper-cube-shadow"></div>'), y.wrapper.append(e)), e.css({
								height: y.width + "px"
							})) : (e = y.container.find(".swiper-cube-shadow"), 0 === e.length && (e = a('<div class="swiper-cube-shadow"></div>'), y.container.append(e))));
							for (var i = 0; i < y.slides.length; i++) {
								var s = y.slides.eq(i),
									r = 90 * i,
									n = Math.floor(r / 360);
								y.rtl && (r = -r, n = Math.floor(-r / 360));
								var o = Math.max(Math.min(s[0].progress, 1), -1),
									l = 0,
									p = 0,
									d = 0;
								i % 4 === 0 ? (l = 4 * -n * y.size, d = 0) : (i - 1) % 4 === 0 ? (l = 0, d = 4 * -n * y.size) : (i - 2) % 4 === 0 ? (l = y.size + 4 * n * y.size, d = y.size) : (i - 3) % 4 === 0 && (l = -y.size, d = 3 * y.size + 4 * y.size * n), y.rtl && (l = -l), y.isHorizontal() || (p = l, l = 0);
								var c = "rotateX(" + (y.isHorizontal() ? 0 : -r) + "deg) rotateY(" + (y.isHorizontal() ? r : 0) + "deg) translate3d(" + l + "px, " + p + "px, " + d + "px)";
								if (1 >= o && o > -1 && (t = 90 * i + 90 * o, y.rtl && (t = 90 * -i - 90 * o)), s.transform(c), y.params.cube.slideShadows) {
									var u = y.isHorizontal() ? s.find(".swiper-slide-shadow-left") : s.find(".swiper-slide-shadow-top"),
										m = y.isHorizontal() ? s.find(".swiper-slide-shadow-right") : s.find(".swiper-slide-shadow-bottom");
									0 === u.length && (u = a('<div class="swiper-slide-shadow-' + (y.isHorizontal() ? "left" : "top") + '"></div>'), s.append(u)), 0 === m.length && (m = a('<div class="swiper-slide-shadow-' + (y.isHorizontal() ? "right" : "bottom") + '"></div>'), s.append(m)), u.length && (u[0].style.opacity = Math.max(-o, 0)), m.length && (m[0].style.opacity = Math.max(o, 0))
								}
							}
							if (y.wrapper.css({
									"-webkit-transform-origin": "50% 50% -" + y.size / 2 + "px",
									"-moz-transform-origin": "50% 50% -" + y.size / 2 + "px",
									"-ms-transform-origin": "50% 50% -" + y.size / 2 + "px",
									"transform-origin": "50% 50% -" + y.size / 2 + "px"
								}), y.params.cube.shadow)
								if (y.isHorizontal()) e.transform("translate3d(0px, " + (y.width / 2 + y.params.cube.shadowOffset) + "px, " + -y.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + y.params.cube.shadowScale + ")");
								else {
									var h = Math.abs(t) - 90 * Math.floor(Math.abs(t) / 90),
										f = 1.5 - (Math.sin(2 * h * Math.PI / 360) / 2 + Math.cos(2 * h * Math.PI / 360) / 2),
										g = y.params.cube.shadowScale,
										v = y.params.cube.shadowScale / f,
										w = y.params.cube.shadowOffset;
									e.transform("scale3d(" + g + ", 1, " + v + ") translate3d(0px, " + (y.height / 2 + w) + "px, " + -y.height / 2 / v + "px) rotateX(-90deg)")
								}
							var x = y.isSafari || y.isUiWebView ? -y.size / 2 : 0;
							y.wrapper.transform("translate3d(0px,0," + x + "px) rotateX(" + (y.isHorizontal() ? 0 : t) + "deg) rotateY(" + (y.isHorizontal() ? -t : 0) + "deg)")
						},
						setTransition: function(e) {
							y.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), y.params.cube.shadow && !y.isHorizontal() && y.container.find(".swiper-cube-shadow").transition(e)
						}
					},
					coverflow: {
						setTranslate: function() {
							for (var e = y.translate, t = y.isHorizontal() ? -e + y.width / 2 : -e + y.height / 2, i = y.isHorizontal() ? y.params.coverflow.rotate : -y.params.coverflow.rotate, s = y.params.coverflow.depth, r = 0, n = y.slides.length; n > r; r++) {
								var o = y.slides.eq(r),
									l = y.slidesSizesGrid[r],
									p = o[0].swiperSlideOffset,
									d = (t - p - l / 2) / l * y.params.coverflow.modifier,
									c = y.isHorizontal() ? i * d : 0,
									u = y.isHorizontal() ? 0 : i * d,
									m = -s * Math.abs(d),
									h = y.isHorizontal() ? 0 : y.params.coverflow.stretch * d,
									f = y.isHorizontal() ? y.params.coverflow.stretch * d : 0;
								Math.abs(f) < .001 && (f = 0), Math.abs(h) < .001 && (h = 0), Math.abs(m) < .001 && (m = 0), Math.abs(c) < .001 && (c = 0), Math.abs(u) < .001 && (u = 0);
								var g = "translate3d(" + f + "px," + h + "px," + m + "px)  rotateX(" + u + "deg) rotateY(" + c + "deg)";
								if (o.transform(g), o[0].style.zIndex = -Math.abs(Math.round(d)) + 1, y.params.coverflow.slideShadows) {
									var v = y.isHorizontal() ? o.find(".swiper-slide-shadow-left") : o.find(".swiper-slide-shadow-top"),
										w = y.isHorizontal() ? o.find(".swiper-slide-shadow-right") : o.find(".swiper-slide-shadow-bottom");
									0 === v.length && (v = a('<div class="swiper-slide-shadow-' + (y.isHorizontal() ? "left" : "top") + '"></div>'), o.append(v)), 0 === w.length && (w = a('<div class="swiper-slide-shadow-' + (y.isHorizontal() ? "right" : "bottom") + '"></div>'), o.append(w)), v.length && (v[0].style.opacity = d > 0 ? d : 0), w.length && (w[0].style.opacity = -d > 0 ? -d : 0)
								}
							}
							if (y.browser.ie) {
								var x = y.wrapper[0].style;
								x.perspectiveOrigin = t + "px 50%"
							}
						},
						setTransition: function(e) {
							y.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
						}
					}
				}, y.lazy = {
					initialImageLoaded: !1,
					loadImageInSlide: function(e, t) {
						if ("undefined" != typeof e && ("undefined" == typeof t && (t = !0), 0 !== y.slides.length)) {
							var i = y.slides.eq(e),
								s = i.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");
							!i.hasClass("swiper-lazy") || i.hasClass("swiper-lazy-loaded") || i.hasClass("swiper-lazy-loading") || (s = s.add(i[0])), 0 !== s.length && s.each(function() {
								var e = a(this);
								e.addClass("swiper-lazy-loading");
								var s = e.attr("data-background"),
									r = e.attr("data-src"),
									n = e.attr("data-srcset");
								y.loadImage(e[0], r || s, n, !1, function() {
									if (s ? (e.css("background-image", 'url("' + s + '")'), e.removeAttr("data-background")) : (n && (e.attr("srcset", n), e.removeAttr("data-srcset")), r && (e.attr("src", r), e.removeAttr("data-src"))), e.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"), i.find(".swiper-lazy-preloader, .preloader").remove(), y.params.loop && t) {
										var a = i.attr("data-swiper-slide-index");
										if (i.hasClass(y.params.slideDuplicateClass)) {
											var o = y.wrapper.children('[data-swiper-slide-index="' + a + '"]:not(.' + y.params.slideDuplicateClass + ")");
											y.lazy.loadImageInSlide(o.index(), !1)
										} else {
											var l = y.wrapper.children("." + y.params.slideDuplicateClass + '[data-swiper-slide-index="' + a + '"]');
											y.lazy.loadImageInSlide(l.index(), !1)
										}
									}
									y.emit("onLazyImageReady", y, i[0], e[0])
								}), y.emit("onLazyImageLoad", y, i[0], e[0])
							})
						}
					},
					load: function() {
						var e;
						if (y.params.watchSlidesVisibility) y.wrapper.children("." + y.params.slideVisibleClass).each(function() {
							y.lazy.loadImageInSlide(a(this).index())
						});
						else if (y.params.slidesPerView > 1)
							for (e = y.activeIndex; e < y.activeIndex + y.params.slidesPerView; e++) y.slides[e] && y.lazy.loadImageInSlide(e);
						else y.lazy.loadImageInSlide(y.activeIndex);
						if (y.params.lazyLoadingInPrevNext)
							if (y.params.slidesPerView > 1 || y.params.lazyLoadingInPrevNextAmount && y.params.lazyLoadingInPrevNextAmount > 1) {
								var t = y.params.lazyLoadingInPrevNextAmount,
									i = y.params.slidesPerView,
									s = Math.min(y.activeIndex + i + Math.max(t, i), y.slides.length),
									r = Math.max(y.activeIndex - Math.max(i, t), 0);
								for (e = y.activeIndex + y.params.slidesPerView; s > e; e++) y.slides[e] && y.lazy.loadImageInSlide(e);
								for (e = r; e < y.activeIndex; e++) y.slides[e] && y.lazy.loadImageInSlide(e)
							} else {
								var n = y.wrapper.children("." + y.params.slideNextClass);
								n.length > 0 && y.lazy.loadImageInSlide(n.index());
								var o = y.wrapper.children("." + y.params.slidePrevClass);
								o.length > 0 && y.lazy.loadImageInSlide(o.index())
							}
					},
					onTransitionStart: function() {
						y.params.lazyLoading && (y.params.lazyLoadingOnTransitionStart || !y.params.lazyLoadingOnTransitionStart && !y.lazy.initialImageLoaded) && y.lazy.load()
					},
					onTransitionEnd: function() {
						y.params.lazyLoading && !y.params.lazyLoadingOnTransitionStart && y.lazy.load()
					}
				}, y.scrollbar = {
					isTouched: !1,
					setDragPosition: function(e) {
						var a = y.scrollbar,
							t = y.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY,
							i = t - a.track.offset()[y.isHorizontal() ? "left" : "top"] - a.dragSize / 2,
							s = -y.minTranslate() * a.moveDivider,
							r = -y.maxTranslate() * a.moveDivider;
						s > i ? i = s : i > r && (i = r), i = -i / a.moveDivider, y.updateProgress(i), y.setWrapperTranslate(i, !0)
					},
					dragStart: function(e) {
						var a = y.scrollbar;
						a.isTouched = !0, e.preventDefault(), e.stopPropagation(), a.setDragPosition(e), clearTimeout(a.dragTimeout), a.track.transition(0), y.params.scrollbarHide && a.track.css("opacity", 1), y.wrapper.transition(100), a.drag.transition(100), y.emit("onScrollbarDragStart", y)
					},
					dragMove: function(e) {
						var a = y.scrollbar;
						a.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, a.setDragPosition(e), y.wrapper.transition(0), a.track.transition(0), a.drag.transition(0), y.emit("onScrollbarDragMove", y))
					},
					dragEnd: function(e) {
						var a = y.scrollbar;
						a.isTouched && (a.isTouched = !1, y.params.scrollbarHide && (clearTimeout(a.dragTimeout), a.dragTimeout = setTimeout(function() {
							a.track.css("opacity", 0), a.track.transition(400)
						}, 1e3)), y.emit("onScrollbarDragEnd", y), y.params.scrollbarSnapOnRelease && y.slideReset())
					},
					enableDraggable: function() {
						var e = y.scrollbar,
							t = y.support.touch ? e.track : document;
						a(e.track).on(y.touchEvents.start, e.dragStart), a(t).on(y.touchEvents.move, e.dragMove), a(t).on(y.touchEvents.end, e.dragEnd)
					},
					disableDraggable: function() {
						var e = y.scrollbar,
							t = y.support.touch ? e.track : document;
						a(e.track).off(y.touchEvents.start, e.dragStart), a(t).off(y.touchEvents.move, e.dragMove), a(t).off(y.touchEvents.end, e.dragEnd)
					},
					set: function() {
						if (y.params.scrollbar) {
							var e = y.scrollbar;
							e.track = a(y.params.scrollbar), y.params.uniqueNavElements && "string" == typeof y.params.scrollbar && e.track.length > 1 && 1 === y.container.find(y.params.scrollbar).length && (e.track = y.container.find(y.params.scrollbar)), e.drag = e.track.find(".swiper-scrollbar-drag"), 0 === e.drag.length && (e.drag = a('<div class="swiper-scrollbar-drag"></div>'), e.track.append(e.drag)), e.drag[0].style.width = "", e.drag[0].style.height = "", e.trackSize = y.isHorizontal() ? e.track[0].offsetWidth : e.track[0].offsetHeight, e.divider = y.size / y.virtualSize, e.moveDivider = e.divider * (e.trackSize / y.size), e.dragSize = e.trackSize * e.divider, y.isHorizontal() ? e.drag[0].style.width = e.dragSize + "px" : e.drag[0].style.height = e.dragSize + "px", e.divider >= 1 ? e.track[0].style.display = "none" : e.track[0].style.display = "", y.params.scrollbarHide && (e.track[0].style.opacity = 0)
						}
					},
					setTranslate: function() {
						if (y.params.scrollbar) {
							var e, a = y.scrollbar,
								t = (y.translate || 0, a.dragSize);
							e = (a.trackSize - a.dragSize) * y.progress, y.rtl && y.isHorizontal() ? (e = -e, e > 0 ? (t = a.dragSize - e, e = 0) : -e + a.dragSize > a.trackSize && (t = a.trackSize + e)) : 0 > e ? (t = a.dragSize + e, e = 0) : e + a.dragSize > a.trackSize && (t = a.trackSize - e), y.isHorizontal() ? (y.support.transforms3d ? a.drag.transform("translate3d(" + e + "px, 0, 0)") : a.drag.transform("translateX(" + e + "px)"), a.drag[0].style.width = t + "px") : (y.support.transforms3d ? a.drag.transform("translate3d(0px, " + e + "px, 0)") : a.drag.transform("translateY(" + e + "px)"), a.drag[0].style.height = t + "px"), y.params.scrollbarHide && (clearTimeout(a.timeout), a.track[0].style.opacity = 1, a.timeout = setTimeout(function() {
								a.track[0].style.opacity = 0, a.track.transition(400)
							}, 1e3))
						}
					},
					setTransition: function(e) {
						y.params.scrollbar && y.scrollbar.drag.transition(e)
					}
				}, y.controller = {
					LinearSpline: function(e, a) {
						this.x = e, this.y = a, this.lastIndex = e.length - 1;
						var t, i;
						this.x.length;
						this.interpolate = function(e) {
							return e ? (i = s(this.x, e), t = i - 1, (e - this.x[t]) * (this.y[i] - this.y[t]) / (this.x[i] - this.x[t]) + this.y[t]) : 0
						};
						var s = function() {
							var e, a, t;
							return function(i, s) {
								for (a = -1, e = i.length; e - a > 1;) i[t = e + a >> 1] <= s ? a = t : e = t;
								return e
							}
						}()
					},
					getInterpolateFunction: function(e) {
						y.controller.spline || (y.controller.spline = y.params.loop ? new y.controller.LinearSpline(y.slidesGrid, e.slidesGrid) : new y.controller.LinearSpline(y.snapGrid, e.snapGrid))
					},
					setTranslate: function(e, a) {
						function i(a) {
							e = a.rtl && "horizontal" === a.params.direction ? -y.translate : y.translate, "slide" === y.params.controlBy && (y.controller.getInterpolateFunction(a), r = -y.controller.spline.interpolate(-e)), r && "container" !== y.params.controlBy || (s = (a.maxTranslate() - a.minTranslate()) / (y.maxTranslate() - y.minTranslate()), r = (e - y.minTranslate()) * s + a.minTranslate()), y.params.controlInverse && (r = a.maxTranslate() - r), a.updateProgress(r), a.setWrapperTranslate(r, !1, y), a.updateActiveIndex()
						}
						var s, r, n = y.params.control;
						if (y.isArray(n))
							for (var o = 0; o < n.length; o++) n[o] !== a && n[o] instanceof t && i(n[o]);
						else n instanceof t && a !== n && i(n)
					},
					setTransition: function(e, a) {
						function i(a) {
							a.setWrapperTransition(e, y), 0 !== e && (a.onTransitionStart(), a.wrapper.transitionEnd(function() {
								r && (a.params.loop && "slide" === y.params.controlBy && a.fixLoop(), a.onTransitionEnd())
							}))
						}
						var s, r = y.params.control;
						if (y.isArray(r))
							for (s = 0; s < r.length; s++) r[s] !== a && r[s] instanceof t && i(r[s]);
						else r instanceof t && a !== r && i(r)
					}
				}, y.hashnav = {
					init: function() {
						if (y.params.hashnav) {
							y.hashnav.initialized = !0;
							var e = document.location.hash.replace("#", "");
							if (e)
								for (var a = 0, t = 0, i = y.slides.length; i > t; t++) {
									var s = y.slides.eq(t),
										r = s.attr("data-hash");
									if (r === e && !s.hasClass(y.params.slideDuplicateClass)) {
										var n = s.index();
										y.slideTo(n, a, y.params.runCallbacksOnInit, !0)
									}
								}
						}
					},
					setHash: function() {
						y.hashnav.initialized && y.params.hashnav && (document.location.hash = y.slides.eq(y.activeIndex).attr("data-hash") || "")
					}
				}, y.disableKeyboardControl = function() {
					y.params.keyboardControl = !1, a(document).off("keydown", l)
				}, y.enableKeyboardControl = function() {
					y.params.keyboardControl = !0, a(document).on("keydown", l)
				}, y.mousewheel = {
					event: !1,
					lastScrollTime: (new window.Date).getTime()
				}, y.params.mousewheelControl) {
				try {
					new window.WheelEvent("wheel"), y.mousewheel.event = "wheel"
				} catch (O) {
					(window.WheelEvent || y.container[0] && "wheel" in y.container[0]) && (y.mousewheel.event = "wheel")
				}!y.mousewheel.event && window.WheelEvent, y.mousewheel.event || void 0 === document.onmousewheel || (y.mousewheel.event = "mousewheel"), y.mousewheel.event || (y.mousewheel.event = "DOMMouseScroll")
			}
			y.disableMousewheelControl = function() {
				return y.mousewheel.event ? (y.container.off(y.mousewheel.event, p), !0) : !1
			}, y.enableMousewheelControl = function() {
				return y.mousewheel.event ? (y.container.on(y.mousewheel.event, p), !0) : !1
			}, y.parallax = {
				setTranslate: function() {
					y.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
						d(this, y.progress)
					}), y.slides.each(function() {
						var e = a(this);
						e.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
							var a = Math.min(Math.max(e[0].progress, -1), 1);
							d(this, a)
						})
					})
				},
				setTransition: function(e) {
					"undefined" == typeof e && (e = y.params.speed), y.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function() {
						var t = a(this),
							i = parseInt(t.attr("data-swiper-parallax-duration"), 10) || e;
						0 === e && (i = 0), t.transition(i)
					})
				}
			}, y._plugins = [];
			for (var N in y.plugins) {
				var R = y.plugins[N](y, y.params[N]);
				R && y._plugins.push(R)
			}
			return y.callPlugins = function(e) {
				for (var a = 0; a < y._plugins.length; a++) e in y._plugins[a] && y._plugins[a][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
			}, y.emitterEventListeners = {}, y.emit = function(e) {
				y.params[e] && y.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
				var a;
				if (y.emitterEventListeners[e])
					for (a = 0; a < y.emitterEventListeners[e].length; a++) y.emitterEventListeners[e][a](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
				y.callPlugins && y.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5])
			}, y.on = function(e, a) {
				return e = c(e), y.emitterEventListeners[e] || (y.emitterEventListeners[e] = []), y.emitterEventListeners[e].push(a), y
			}, y.off = function(e, a) {
				var t;
				if (e = c(e), "undefined" == typeof a) return y.emitterEventListeners[e] = [], y;
				if (y.emitterEventListeners[e] && 0 !== y.emitterEventListeners[e].length) {
					for (t = 0; t < y.emitterEventListeners[e].length; t++) y.emitterEventListeners[e][t] === a && y.emitterEventListeners[e].splice(t, 1);
					return y
				}
			}, y.once = function(e, a) {
				e = c(e);
				var t = function() {
					a(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), y.off(e, t)
				};
				return y.on(e, t), y
			}, y.a11y = {
				makeFocusable: function(e) {
					return e.attr("tabIndex", "0"), e
				},
				addRole: function(e, a) {
					return e.attr("role", a), e
				},
				addLabel: function(e, a) {
					return e.attr("aria-label", a), e
				},
				disable: function(e) {
					return e.attr("aria-disabled", !0), e
				},
				enable: function(e) {
					return e.attr("aria-disabled", !1), e
				},
				onEnterKey: function(e) {
					13 === e.keyCode && (a(e.target).is(y.params.nextButton) ? (y.onClickNext(e), y.isEnd ? y.a11y.notify(y.params.lastSlideMessage) : y.a11y.notify(y.params.nextSlideMessage)) : a(e.target).is(y.params.prevButton) && (y.onClickPrev(e), y.isBeginning ? y.a11y.notify(y.params.firstSlideMessage) : y.a11y.notify(y.params.prevSlideMessage)), a(e.target).is("." + y.params.bulletClass) && a(e.target)[0].click())
				},
				liveRegion: a('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),
				notify: function(e) {
					var a = y.a11y.liveRegion;
					0 !== a.length && (a.html(""), a.html(e))
				},
				init: function() {
					y.params.nextButton && y.nextButton && y.nextButton.length > 0 && (y.a11y.makeFocusable(y.nextButton), y.a11y.addRole(y.nextButton, "button"), y.a11y.addLabel(y.nextButton, y.params.nextSlideMessage)), y.params.prevButton && y.prevButton && y.prevButton.length > 0 && (y.a11y.makeFocusable(y.prevButton), y.a11y.addRole(y.prevButton, "button"), y.a11y.addLabel(y.prevButton, y.params.prevSlideMessage)), a(y.container).append(y.a11y.liveRegion)
				},
				initPagination: function() {
					y.params.pagination && y.params.paginationClickable && y.bullets && y.bullets.length && y.bullets.each(function() {
						var e = a(this);
						y.a11y.makeFocusable(e), y.a11y.addRole(e, "button"), y.a11y.addLabel(e, y.params.paginationBulletMessage.replace(/{{index}}/, e.index() + 1))
					})
				},
				destroy: function() {
					y.a11y.liveRegion && y.a11y.liveRegion.length > 0 && y.a11y.liveRegion.remove()
				}
			}, y.init = function() {
				y.params.loop && y.createLoop(), y.updateContainerSize(), y.updateSlidesSize(), y.updatePagination(), y.params.scrollbar && y.scrollbar && (y.scrollbar.set(), y.params.scrollbarDraggable && y.scrollbar.enableDraggable()), "slide" !== y.params.effect && y.effects[y.params.effect] && (y.params.loop || y.updateProgress(), y.effects[y.params.effect].setTranslate()), y.params.loop ? y.slideTo(y.params.initialSlide + y.loopedSlides, 0, y.params.runCallbacksOnInit) : (y.slideTo(y.params.initialSlide, 0, y.params.runCallbacksOnInit), 0 === y.params.initialSlide && (y.parallax && y.params.parallax && y.parallax.setTranslate(), y.lazy && y.params.lazyLoading && (y.lazy.load(), y.lazy.initialImageLoaded = !0))), y.attachEvents(), y.params.observer && y.support.observer && y.initObservers(), y.params.preloadImages && !y.params.lazyLoading && y.preloadImages(), y.params.autoplay && y.startAutoplay(), y.params.keyboardControl && y.enableKeyboardControl && y.enableKeyboardControl(), y.params.mousewheelControl && y.enableMousewheelControl && y.enableMousewheelControl(),
					y.params.hashnav && y.hashnav && y.hashnav.init(), y.params.a11y && y.a11y && y.a11y.init(), y.emit("onInit", y)
			}, y.cleanupStyles = function() {
				y.container.removeClass(y.classNames.join(" ")).removeAttr("style"), y.wrapper.removeAttr("style"), y.slides && y.slides.length && y.slides.removeClass([y.params.slideVisibleClass, y.params.slideActiveClass, y.params.slideNextClass, y.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), y.paginationContainer && y.paginationContainer.length && y.paginationContainer.removeClass(y.params.paginationHiddenClass), y.bullets && y.bullets.length && y.bullets.removeClass(y.params.bulletActiveClass), y.params.prevButton && a(y.params.prevButton).removeClass(y.params.buttonDisabledClass), y.params.nextButton && a(y.params.nextButton).removeClass(y.params.buttonDisabledClass), y.params.scrollbar && y.scrollbar && (y.scrollbar.track && y.scrollbar.track.length && y.scrollbar.track.removeAttr("style"), y.scrollbar.drag && y.scrollbar.drag.length && y.scrollbar.drag.removeAttr("style"))
			}, y.destroy = function(e, a) {
				y.detachEvents(), y.stopAutoplay(), y.params.scrollbar && y.scrollbar && y.params.scrollbarDraggable && y.scrollbar.disableDraggable(), y.params.loop && y.destroyLoop(), a && y.cleanupStyles(), y.disconnectObservers(), y.params.keyboardControl && y.disableKeyboardControl && y.disableKeyboardControl(), y.params.mousewheelControl && y.disableMousewheelControl && y.disableMousewheelControl(), y.params.a11y && y.a11y && y.a11y.destroy(), y.emit("onDestroy"), e !== !1 && (y = null)
			}, y.init(), y
		}
	};
	t.prototype = {
		isSafari: function() {
			var e = navigator.userAgent.toLowerCase();
			return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0
		}(),
		isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),
		isArray: function(e) {
			return "[object Array]" === Object.prototype.toString.apply(e)
		},
		browser: {
			ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,
			ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1
		},
		device: function() {
			var e = navigator.userAgent,
				a = e.match(/(Android);?[\s\/]+([\d.]+)?/),
				t = e.match(/(iPad).*OS\s([\d_]+)/),
				i = e.match(/(iPod)(.*OS\s([\d_]+))?/),
				s = !t && e.match(/(iPhone\sOS)\s([\d_]+)/);
			return {
				ios: t || s || i,
				android: a
			}
		}(),
		support: {
			touch: window.Modernizr && Modernizr.touch === !0 || function() {
				return !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch)
			}(),
			transforms3d: window.Modernizr && Modernizr.csstransforms3d === !0 || function() {
				var e = document.createElement("div").style;
				return "webkitPerspective" in e || "MozPerspective" in e || "OPerspective" in e || "MsPerspective" in e || "perspective" in e
			}(),
			flexbox: function() {
				for (var e = document.createElement("div").style, a = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), t = 0; t < a.length; t++)
					if (a[t] in e) return !0
			}(),
			observer: function() {
				return "MutationObserver" in window || "WebkitMutationObserver" in window
			}()
		},
		plugins: {}
	};
	for (var i = ["jQuery", "Zepto", "Dom7"], s = 0; s < i.length; s++) window[i[s]] && e(window[i[s]]);
	var r;
	r = "undefined" == typeof Dom7 ? window.Dom7 || window.Zepto || window.jQuery : Dom7, r && ("transitionEnd" in r.fn || (r.fn.transitionEnd = function(e) {
		function a(r) {
			if (r.target === this)
				for (e.call(this, r), t = 0; t < i.length; t++) s.off(i[t], a)
		}
		var t, i = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"],
			s = this;
		if (e)
			for (t = 0; t < i.length; t++) s.on(i[t], a);
		return this
	}), "transform" in r.fn || (r.fn.transform = function(e) {
		for (var a = 0; a < this.length; a++) {
			var t = this[a].style;
			t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e
		}
		return this
	}), "transition" in r.fn || (r.fn.transition = function(e) {
		"string" != typeof e && (e += "ms");
		for (var a = 0; a < this.length; a++) {
			var t = this[a].style;
			t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e
		}
		return this
	})), window.Swiper = t
}(), "undefined" != typeof module ? module.exports = window.Swiper : "function" == typeof define && define.amd && define([], function() {
	"use strict";
	return window.Swiper
}), + function(e) {
	"use strict";
	var a;
	e.fn.swiper = function(t) {
		return this.each(function() {
			if (this) {
				var i = e(this),
					s = i.data("swiper");
				return s || i.data("swiper", new Swiper(this, e.extend({}, a, t))), s
			}
		})
	}, a = e.fn.swiper.prototype.defaults = {
		pagination: ".swiper-pagination"
	}
}($), + function(e) {
	var a, t = function(e) {
		this.initConfig(e), this.index = 0
	};
	t.prototype = {
		initConfig: function(t) {
			this.config = e.extend({}, a, t), this.activeIndex = this.lastActiveIndex = this.config.initIndex, this.config.items = this.config.items.map(function(e, a) {
				return "string" == typeof e ? {
					image: e,
					caption: ""
				} : e
			}), this.tpl = e.t7.compile(this.config.tpl), this.config.autoOpen && this.open()
		},
		open: function(a) {
			if (this._open) return !1;
			if (!this.modal) {
				this.modal = e(this.tpl(this.config)).appendTo(document.body), this.container = this.modal.find(".swiper-container"), this.wrapper = this.modal.find(".swiper-wrapper");
				var t = new Hammer(this.container[0]);
				t.get("pinch").set({
					enable: !0
				}), t.on("pinchstart", e.proxy(this.onGestureStart, this)), t.on("pinchmove", e.proxy(this.onGestureChange, this)), t.on("pinchend", e.proxy(this.onGestureEnd, this)), this.modal.on(e.touchEvents.start, e.proxy(this.onTouchStart, this)), this.modal.on(e.touchEvents.move, e.proxy(this.onTouchMove, this)), this.modal.on(e.touchEvents.end, e.proxy(this.onTouchEnd, this)), this.wrapper.transition(0), this.wrapper.transform("translate3d(-" + e(window).width() * this.config.initIndex + "px,0,0)"), this.container.find(".caption-item").eq(this.config.initIndex).addClass("active"), this.container.find(".swiper-pagination-bullet").eq(this.config.initIndex).addClass("swiper-pagination-bullet-active")
			}
			var i = this;
			this.modal.show().height(), this.modal.addClass("weui-photo-browser-modal-visible"), this.container.addClass("swiper-container-visible").transitionEnd(function() {
				i.initParams(), i.config.onOpen && i.config.onOpen.call(i)
			}), this._open = !0, void 0 !== a && this.slideTo(a, 0)
		},
		close: function() {
			this.container.transitionEnd(e.proxy(function() {
				this.modal.hide(), this._open = !1, this.config.onClose && this.config.onClose.call(this)
			}, this)), this.container.removeClass("swiper-container-visible"), this.modal.removeClass("weui-photo-browser-modal-visible")
		},
		initParams: function() {
			return this.containerHeight ? !1 : (this.windowWidth = e(window).width(), this.containerHeight = this.container.height(), this.containerWidth = this.container.width(), this.touchStart = {}, this.wrapperTransform = 0, this.wrapperLastTransform = -e(window).width() * this.config.initIndex, this.wrapperDiff = 0, this.lastScale = 1, this.currentScale = 1, this.imageLastTransform = {
				x: 0,
				y: 0
			}, this.imageTransform = {
				x: 0,
				y: 0
			}, this.imageDiff = {
				x: 0,
				y: 0
			}, void(this.imageLastDiff = {
				x: 0,
				y: 0
			}))
		},
		onTouchStart: function(a) {
			return this.scaling ? !1 : (this.touching = !0, this.touchStart = e.getTouchPosition(a), this.touchMove = null, this.touchStartTime = +new Date, this.wrapperDiff = 0, void(this.breakpointPosition = null))
		},
		onTouchMove: function(a) {
			if (!this.touching || this.scaling) return !1;
			if (a.preventDefault(), this.gestureImage) {
				var t = this.gestureImage[0].getBoundingClientRect();
				t.left >= 0 || t.right <= this.windowWidth ? this.overflow = !0 : this.overflow = !1
			} else this.oveflow = !1;
			var i = this.touchMove = e.getTouchPosition(a);
			if (1 === this.currentScale || this.overflow) this.breakpointPosition ? this.wrapperDiff = i.x - this.breakpointPosition.x : this.wrapperDiff = i.x - this.touchStart.x, 0 === this.activeIndex && this.wrapperDiff > 0 && (this.wrapperDiff = Math.pow(this.wrapperDiff, .8)), this.activeIndex === this.config.items.length - 1 && this.wrapperDiff < 0 && (this.wrapperDiff = -Math.pow(-this.wrapperDiff, .8)), this.wrapperTransform = this.wrapperLastTransform + this.wrapperDiff, this.doWrapperTransform();
			else {
				this.gestureImage;
				this.imageDiff = {
					x: i.x - this.touchStart.x,
					y: i.y - this.touchStart.y
				}, this.imageTransform = {
					x: this.imageDiff.x + this.imageLastTransform.x,
					y: this.imageDiff.y + this.imageLastTransform.y
				}, this.doImageTransform(), this.breakpointPosition = i, this.imageLastDiff = this.imageDiff
			}
		},
		onTouchEnd: function(e) {
			if (!this.touching) return !1;
			if (this.touching = !1, this.scaling) return !1;
			var a = +new Date - this.touchStartTime;
			return 200 > a && (!this.touchMove || Math.abs(this.touchStart.x - this.touchMove.x) <= 2 && Math.abs(this.touchStart.y - this.touchMove.y) <= 2) ? void this.onClick() : (this.wrapperDiff > 0 ? this.wrapperDiff > this.containerWidth / 2 || this.wrapperDiff > 20 && 300 > a ? this.slidePrev() : this.slideTo(this.activeIndex, 200) : -this.wrapperDiff > this.containerWidth / 2 || -this.wrapperDiff > 20 && 300 > a ? this.slideNext() : this.slideTo(this.activeIndex, 200), this.imageLastTransform = this.imageTransform, void this.adjust())
		},
		onClick: function() {
			var e = this;
			this._lastClickTime && +new Date - this._lastClickTime < 300 ? (this.onDoubleClick(), clearTimeout(this._clickTimeout)) : this._clickTimeout = setTimeout(function() {
				e.close()
			}, 300), this._lastClickTime = +new Date
		},
		onDoubleClick: function() {
			this.gestureImage = this.container.find(".swiper-slide").eq(this.activeIndex).find("img"), this.currentScale = this.currentScale > 1 ? 1 : 2, this.doImageTransform(200), this.adjust()
		},
		onGestureStart: function(e) {
			this.scaling = !0, this.gestureImage = this.container.find(".swiper-slide").eq(this.activeIndex).find("img")
		},
		onGestureChange: function(e) {
			var a = this.lastScale * e.scale;
			a > this.config.maxScale ? a = this.config.maxScale + Math.pow(a - this.config.maxScale, .5) : 1 > a && (a = Math.pow(a, .5)), this.currentScale = a, this.doImageTransform()
		},
		onGestureEnd: function(e) {
			this.currentScale > this.config.maxScale ? (this.currentScale = this.config.maxScale, this.doImageTransform(200)) : this.currentScale < 1 && (this.currentScale = 1, this.doImageTransform(200)), this.lastScale = this.currentScale, this.scaling = !1, this.adjust()
		},
		doWrapperTransform: function(e, a) {
			if (0 === e) {
				var t = this.wrapper.css("transition-property");
				this.wrapper.css("transition-property", "none").transform("translate3d(" + this.wrapperTransform + "px, 0, 0)"), this.wrapper.css("transition-property", t), a()
			} else this.wrapper.transitionEnd(function() {
				a && a()
			}), this.wrapper.transition(e || 0).transform("translate3d(" + this.wrapperTransform + "px, 0, 0)")
		},
		doImageTransform: function(e, a) {
			this.gestureImage && (this.gestureImage.transition(e || 0).transform("translate3d(" + this.imageTransform.x + "px," + this.imageTransform.y + "px, 0) scale(" + this.currentScale + ")"), this._needAdjust = !0)
		},
		adjust: function() {
			if (!this._needAdjust) return !1;
			var e = this.gestureImage;
			if (!e) return !1;
			if (1 === this.currentScale) return this.imageTransform = this.imageLastDiff = {
				x: 0,
				y: 0
			}, void this.doImageTransform(200);
			var a = e[0].getBoundingClientRect();
			a.height < this.containerHeight ? this.imageTransform.y = this.imageLastTransform.y = 0 : a.top > 0 ? this.imageTransform.y = this.imageTransform.y - a.top : a.bottom < this.containerHeight && (this.imageTransform.y = this.imageTransform.y + this.containerHeight - a.bottom), this.doImageTransform(200), this._needAdjust = !1
		},
		slideTo: function(a, t) {
			0 > a && (a = 0), a > this.config.items.length - 1 && (a = this.config.items.length - 1), this.lastActiveIndex = this.activeIndex, this.activeIndex = a, this.wrapperTransform = -(a * this.containerWidth), this.wrapperLastTransform = this.wrapperTransform, this.doWrapperTransform(t, e.proxy(function() {
				return this.lastActiveIndex === this.activeIndex ? !1 : (this.container.find(".caption-item.active").removeClass("active"), this.container.find(".swiper-slide-active").removeClass("swiper-slide-active"), this.container.find(".swiper-pagination-bullet-active").removeClass("swiper-pagination-bullet-active"), this.container.find(".caption-item").eq(this.activeIndex).addClass("active"), this.container.find(".swiper-slide").eq(this.activeIndex).addClass("swiper-slide-active"), this.container.find(".swiper-pagination-bullet").eq(this.activeIndex).addClass("swiper-pagination-bullet-active"), this.container.find(".swiper-slide img[style]").transition(0).transform("translate3d(0,0,0) scale(1)"), this.lastScale = 1, this.currentScale = 1, this.imageLastTransform = {
					x: 0,
					y: 0
				}, this.imageTransform = {
					x: 0,
					y: 0
				}, this.imageDiff = {
					x: 0,
					y: 0
				}, this.imageLastDiff = {
					x: 0,
					y: 0
				}, void(this.config.onSlideChange && this.config.onSlideChange.call(this, this.activeIndex)))
			}, this))
		},
		slideNext: function() {
			return this.slideTo(this.activeIndex + 1, 200)
		},
		slidePrev: function() {
			return this.slideTo(this.activeIndex - 1, 200)
		}
	}, a = t.prototype.defaults = {
		items: [],
		autoOpen: !1,
		onOpen: void 0,
		onClose: void 0,
		initIndex: 0,
		maxScale: 3,
		onSlideChange: void 0,
		tpl: '<div class="weui-photo-browser-modal">            <div class="swiper-container">              <div class="swiper-wrapper">                {{#items}}                <div class="swiper-slide">                  <div class="photo-container">                    <img src="{{image}}" />                  </div>                </div>                {{/items}}              </div>              <div class="caption">                {{#items}}                <div class="caption-item caption-item-{{@index}}">{{caption}}</div>                {{/items}}              </div>              <div class="swiper-pagination swiper-pagination-bullets">                {{#items}}                <span class="swiper-pagination-bullet"></span>                {{/items}}              </div>            </div>          </div>'
	}, e.photoBrowser = function(e) {
		return new t(e)
	}
}($);